if -s & -p specified, mention 'sftp -P' on success

This was inspired by this:
 https://github.com/openssh/openssh-portable/pull/321
but I thought that it was better to not do the sed patching.

BTW the reason one can get away with using $SSH_OPTS throughout, despite
the lowercase -p in there, even if sftp is in use, is that the sftp call
is using the already-established ssh master connection, so the port was
passed to the earlier ssh.

SSH-Copy-ID-Upstream: 1c124d9bfafdbe28a00b683367ebf5750ce12eb2
This commit is contained in:
Philip Hands 2023-05-24 11:45:43 +02:00 committed by Darren Tucker
parent 801cda54c0
commit 9de79df66d
No known key found for this signature in database
1 changed files with 7 additions and 3 deletions

View File

@ -126,7 +126,7 @@ do
SEEN_OPT_I="yes"
use_id_file "${OPTARG:-$DEFAULT_PUB_ID_FILE}"
;;
o|p|F)
o|F)
SSH_OPTS="${SSH_OPTS:+$SSH_OPTS }-$OPT '$(quote "${OPTARG}")'"
;;
f)
@ -135,6 +135,9 @@ do
n)
DRY_RUN=1
;;
p)
SSH_PORT=${OPTARG}
;;
s)
SFTP=sftp
;;
@ -163,7 +166,7 @@ fi
USER_HOST="$*"
# tack the hostname onto SSH_OPTS
SSH_OPTS="${SSH_OPTS:+$SSH_OPTS }'$(quote "$USER_HOST")'"
SSH_OPTS="${SSH_OPTS:+$SSH_OPTS }${SSH_PORT:+-p $SSH_PORT }'$(quote "$USER_HOST")'"
# and populate "$@" for later use (only way to get proper quoting of options)
eval set -- "$SSH_OPTS"
@ -370,11 +373,12 @@ if [ "$DRY_RUN" ] ; then
=-=-=-=-=-=-=-=
EOF
else
[ -z "$SFTP" ] || PORT_OPT=P
cat <<-EOF
Number of key(s) added: $ADDED
Now try logging into the machine, with: "${SFTP:-ssh} $SSH_OPTS"
Now try logging into the machine, with: "${SFTP:-ssh}${SSH_PORT:+ -${PORT_OPT:-p} '$SSH_PORT'} ${SSH_OPTS}"
and check to make sure that only the key(s) you wanted were added.
EOF