--- ssh-copy-id.orig 2015-01-06 22:31:42.970475967 +0100
+++ ssh-copy-id 2015-01-06 23:16:56.778577172 +0100
@@ -206,29 +206,7 @@
trap "rm -f $L_TMP_ID_FILE ${L_TMP_ID_FILE}.pub" EXIT TERM INT QUIT
printf '%s: INFO: attempting to log in with the new key(s), to filter out any that are already installed\n' "$0" >&2
NEW_IDS=$(
- eval $GET_ID | {
- while read ID ; do
- printf '%s\n' "$ID" > $L_TMP_ID_FILE
-
- # the next line assumes $PRIV_ID_FILE only set if using a single id file - this
- # assumption will break if we implement the possibility of multiple -i options.
- # The point being that if file based, ssh needs the private key, which it cannot
- # find if only given the contents of the .pub file in an unrelated tmpfile
- ssh -i "${PRIV_ID_FILE:-$L_TMP_ID_FILE}" \
- -o PreferredAuthentications=publickey \
- -o IdentitiesOnly=yes "$@" exit 2>$L_TMP_ID_FILE.stderr </dev/null
- if [ "$?" = "$L_SUCCESS" ] ; then
- : > $L_TMP_ID_FILE
- else
- grep 'Permission denied' $L_TMP_ID_FILE.stderr >/dev/null || {
- sed -e 's/^/ERROR: /' <$L_TMP_ID_FILE.stderr >$L_TMP_ID_FILE
- cat >/dev/null #consume the other keys, causing loop to end
- }
- fi
-
- cat $L_TMP_ID_FILE
- done
- }
+ eval $GET_ID
)
rm -f $L_TMP_ID_FILE* && trap - EXIT TERM INT QUIT