ssh-copy-id no newline bug
    Ernesto Alfonso 
    erjoalgo at gmail.com
       
    Sun Mar 20 07:53:32 AEDT 2016
    
    
  
When editing ~/.ssh/authorized_keys manually, sometimes users forget
to add a newline at the end of the file, causing the next ssh-copy-id
call to append a new key to an existing key, invalidating both keys.
This can be fixed by simply adding a newline before appending the key.
Something like this change to
openssh-source/openssh-6.7p1/contrib/ssh-copy-id might work:
# Assuming that the remote host treats ~/.ssh/authorized_keys as one
might expect
    populate_new_ids 0
    [ "$DRY_RUN" ] || printf '%s\n' "$NEW_IDS" | ssh "$@" "
		umask 077 ;
		mkdir -p .ssh && \
echo >> .ssh/authorized_keys && \
cat >> .ssh/authorized_keys || exit 1 ;
		if type restorecon >/dev/null 2>&1 ; then restorecon -F .ssh
.ssh/authorized_keys ; fi" \
      || exit 1
    ADDED=$(printf '%s\n' "$NEW_IDS" | wc -l)
    ;;
    
    
More information about the openssh-unix-dev
mailing list