diff -up openssh-7.4p1/contrib/ssh-copy-id.1.legacy-ssh-copy-id openssh-7.4p1/contrib/ssh-copy-id.1 --- openssh-7.4p1/contrib/ssh-copy-id.1.legacy-ssh-copy-id 2016-12-19 05:59:41.000000000 +0100 +++ openssh-7.4p1/contrib/ssh-copy-id.1 2017-02-09 09:23:25.366651136 +0100 @@ -185,6 +185,19 @@ should prove enlightening (N.B. the mode .Fl W option, rather than .Xr nc 1 ) . +.Sh ENVIRONMENT +.Bl -tag -width Ds +.Pp +.It Pa SSH_COPY_ID_LEGACY +If the +.Cm SSH_COPY_ID_LEGACY +environment variable is set, the +.Nm +is run in a legacy mode. In this mode, the +.Nm +doesn't check an existence of a private key and doesn't do remote checks +of the remote server versions or if public keys are already installed. +.El .Sh "SEE ALSO" .Xr ssh 1 , .Xr ssh-agent 1 , diff -up openssh-7.4p1/contrib/ssh-copy-id.legacy-ssh-copy-id openssh-7.4p1/contrib/ssh-copy-id --- openssh-7.4p1/contrib/ssh-copy-id.legacy-ssh-copy-id 2017-02-09 09:23:25.366651136 +0100 +++ openssh-7.4p1/contrib/ssh-copy-id 2017-02-09 09:33:07.896518169 +0100 @@ -99,6 +99,9 @@ if [ -n "$SSH_AUTH_SOCK" ] && ssh-add -L GET_ID="ssh-add -L" fi +# legacy environment variable implies forced copy +[ "x$SSH_COPY_ID_LEGACY" != "x" ] && FORCED=1 + while test "$#" -gt 0 do [ "${SEEN_OPT_I}" ] && expr "$1" : "[-]i" >/dev/null && {