Files
ssh-mgmt/gen-and-distrib-new-key.sh
ADAM David Alan Martin b885b63152 Do all work in a single ssh command.
This means that if a password is required, it happens only once.
2026-02-03 14:23:50 -05:00

49 lines
1.0 KiB
Bash
Executable File

#!/usr/bin/env bash
keytype=rsa
keybits=5888
if [ "x" != "x$2" ]
then
keybits=$2
fi
if [ -z $1 ]
then
echo "Need a hostname"
exit
fi
target=$1
echo target: ${target}
targetname=${target}
echo targetname=${targetname}
hostname=$( (hostname -s) )
hostname="${hostname}${CSHENV_MACHINE_SUFFIX}"
echo hostname: ${hostname}
keyname=id_${hostname}-${targetname}
echo keyname: ${keyname}
echo keybits: ${keybits}
#echo rm -f ${keyname}
#rm -f ${keyname}
#exit
mkdir -p ~/.ssh/newkeys
#echo rm -f ${keyname}
rm -f ~/.ssh/newkeys/${keyname}
ssh-keygen -N "" -t ${keytype} -b ${keybits} -V +6w -f ~/.ssh/newkeys/${keyname}
keytext=$(<~/.ssh/newkeys/${keyname}.pub)
rm ~/.ssh/newkeys/${keyname}.pub
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}