From b885b631524eba72576c6ebbd422e7e2d7a63b47 Mon Sep 17 00:00:00 2001 From: ADAM David Alan Martin Date: Tue, 3 Feb 2026 14:23:50 -0500 Subject: [PATCH] Do all work in a single ssh command. This means that if a password is required, it happens only once. --- gen-and-distrib-new-key.sh | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/gen-and-distrib-new-key.sh b/gen-and-distrib-new-key.sh index 270c2b1..2684b8f 100755 --- a/gen-and-distrib-new-key.sh +++ b/gen-and-distrib-new-key.sh @@ -32,10 +32,17 @@ mkdir -p ~/.ssh/newkeys #echo rm -f ${keyname} rm -f ~/.ssh/newkeys/${keyname} -ssh-keygen -t ${keytype} -b ${keybits} -V +6w -f ~/.ssh/newkeys/${keyname} +ssh-keygen -N "" -t ${keytype} -b ${keybits} -V +6w -f ~/.ssh/newkeys/${keyname} -ssh ${target} "mkdir -p .ssh/incoming; rm -f .ssh/incoming/${keyname}" || exit -scp ~/.ssh/newkeys/${keyname}.pub ${target}:.ssh/incoming/id_${hostname}.pub || exit +keytext=$(<~/.ssh/newkeys/${keyname}.pub) rm ~/.ssh/newkeys/${keyname}.pub -ssh ${target} "mkdir -p .ssh/valid; mv .ssh/incoming/id_${hostname}.pub .ssh/valid; cat .ssh/valid/* > .ssh/authorized_keys" || exit + +ssh ${target} \ +"\ + mkdir -p .ssh/incoming; rm -f .ssh/incoming/${keyname};\ + echo ${keytext} >> .ssh/incoming/id_${hostname}.pub; \ + cat .ssh/incoming/id_${hostname}.pub >> .ssh/authorized_keys; \ + mkdir -p .ssh/valid; mv .ssh/incoming/id_${hostname}.pub .ssh/valid; cat .ssh/valid/* > .ssh/authorized_keys;\ +" + mv ~/.ssh/newkeys/${keyname} ~/.ssh/${keyname}