Ben Pfaff
2009-Aug-27 16:00 UTC
[patch] ssh-copy-id: improve error reporting with -i and documentation
The "ssh-copy-id" program requires that the argument to -i end in .pub, by appending that extension itself if it is missing. But if the file with .pub appended does not exist, ssh-copy-id reports the misleading message "ERROR: No identities found". This patch improves the error message by mentioning the name of the actual file that does not exist. Also, document that the argument of -i must end in .pub or that .pub will be appended automatically. Index: contrib/ssh-copy-id ==================================================================RCS file: /cvs/openssh/contrib/ssh-copy-id,v retrieving revision 1.7 diff -u -p -r1.7 ssh-copy-id --- contrib/ssh-copy-id 21 Jan 2009 09:29:21 -0000 1.7 +++ contrib/ssh-copy-id 27 Aug 2009 15:57:49 -0000 @@ -18,6 +18,10 @@ if [ "-i" = "$1" ]; then fi shift # and this should leave $1 as the target name fi + if [ ! -e "$ID_FILE" ]; then + echo "$0: ERROR: $ID_FILE does not exist" >&2 + exit 1 + fi else if [ x$SSH_AUTH_SOCK != x ] ; then GET_ID="$GET_ID ssh-add -L" Index: contrib/ssh-copy-id.1 ==================================================================RCS file: /cvs/openssh/contrib/ssh-copy-id.1,v retrieving revision 1.3 diff -u -p -r1.3 ssh-copy-id.1 --- contrib/ssh-copy-id.1 21 Jan 2009 09:29:21 -0000 1.3 +++ contrib/ssh-copy-id.1 27 Aug 2009 15:57:49 -0000 @@ -45,6 +45,10 @@ option is given then the identity file ( .BR ~/.ssh/id_rsa.pub ) is used, regardless of whether there are any keys in your .BR ssh-agent . +The extension +.B .pub +is automatically appended to the identity file's name if it does not +already end with that extension. Otherwise, if this: .PP .B " ssh-add -L" -- Ben Pfaff http://benpfaff.org
Ben Pfaff
2009-Aug-27 19:54 UTC
[patch] ssh-copy-id: improve error reporting with -i and documentation
Flavien Lebarbe <flavien-ssh at lebarbe.net> pointed out in private mail that -r might be a better test. Here's an updated patch and changelog: The "ssh-copy-id" program requires that the argument to -i end in .pub, by appending that extension itself if it is missing. But if the file with .pub appended does not exist, ssh-copy-id reports the misleading message "ERROR: No identities found". This patch improves the error message by mentioning the name of the actual file that does not exist. Also, document that the argument of -i must end in .pub or that .pub will be appended automatically. Index: ssh-copy-id ==================================================================RCS file: /cvs/openssh/contrib/ssh-copy-id,v retrieving revision 1.7 diff -u -p -r1.7 ssh-copy-id --- ssh-copy-id 21 Jan 2009 09:29:21 -0000 1.7 +++ ssh-copy-id 27 Aug 2009 19:53:48 -0000 @@ -18,6 +18,10 @@ if [ "-i" = "$1" ]; then fi shift # and this should leave $1 as the target name fi + if [ ! -r "$ID_FILE" ]; then + echo "$0: ERROR: $ID_FILE cannot be read" >&2 + exit 1 + fi else if [ x$SSH_AUTH_SOCK != x ] ; then GET_ID="$GET_ID ssh-add -L" Index: ssh-copy-id.1 ==================================================================RCS file: /cvs/openssh/contrib/ssh-copy-id.1,v retrieving revision 1.3 diff -u -p -r1.3 ssh-copy-id.1 --- ssh-copy-id.1 21 Jan 2009 09:29:21 -0000 1.3 +++ ssh-copy-id.1 27 Aug 2009 19:53:48 -0000 @@ -45,6 +45,10 @@ option is given then the identity file ( .BR ~/.ssh/id_rsa.pub ) is used, regardless of whether there are any keys in your .BR ssh-agent . +The extension +.B .pub +is automatically appended to the identity file's name if it does not +already end with that extension. Otherwise, if this: .PP .B " ssh-add -L" -- Ben Pfaff http://benpfaff.org