#!/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}