RFC: ssh-copy-id tweaks
Nick Dokos
nicholas.dokos at hp.com
Fri Feb 1 05:00:12 EST 2008
I'd like to propose a couple of tweaks to ssh-copy-id:
o Change the default ID_FILE from identity.pub to id_dsa.pub or perhaps
{id_dsa,id_rsa,identity}.pub to cover all the bases, although the
patch below deals only with id_dsa.pub - it would need some more
tweaking to deal with more than one (possibly non-existent) file.
o If the destination authorized_keys file already contains the keys,
they should not be duplicated. I use ssh-copy-id in a regression harness
and I end up adding the same key tens or hundreds of times. I have not
seen any problem but it is somewhat distasteful.
The method proposed is frankly a hack, but it is simple and I think it
is foolproof and portable. At least initially, it will mess up the
order of the keys, but given that the file is mostly write-only by
humans, that should not make any difference.
Comments?
Thanks,
Nick
--- ssh-copy-id.orig 2008-01-31 12:01:03.000000000 -0500
+++ ssh-copy-id 2008-01-31 12:05:16.000000000 -0500
@@ -1,11 +1,11 @@
#!/bin/sh
-# Shell script to install your identity.pub on a remote machine
+# Shell script to install your id_dsa.pub on a remote machine
# Takes the remote machine name as an argument.
# Obviously, the remote machine must accept password authentication,
# or one of the other keys in your ssh-agent, for this to work.
-ID_FILE="${HOME}/.ssh/identity.pub"
+ID_FILE="${HOME}/.ssh/id_dsa.pub"
if [ "-i" = "$1" ]; then
shift
@@ -38,7 +38,7 @@
exit 1
fi
-{ eval "$GET_ID" ; } | ssh $1 "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys" || exit 1
+{ eval "$GET_ID" ; } | ssh $1 "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys && sort -u -o .ssh/authorized_keys .ssh/authorized_keys" || exit 1
cat <<EOF
Now try logging into the machine, with "ssh '$1'", and check in:
More information about the openssh-unix-dev
mailing list