github.com/vmware/govmomi@v0.37.2/govc/examples/lib/ssh.sh (about) 1 function public-key { 2 local dir=${HOME}/.ssh 3 4 for f in $HOME/.ssh/{id_{rsa,dsa},*}.pub; do 5 if [ -r $f ]; then 6 echo $f 7 return 8 fi 9 done 10 11 echo "Can't find public key file..." 12 exit 1 13 } 14 15 PUBLIC_KEY_FILE=${PUBLIC_KEY_FILE-$(public-key)} 16 SSH_OPTS="-oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null -oLogLevel=quiet" 17 18 function upload-public-key { 19 local vm_name=$1 20 local dir=$2 21 22 if [ -z "$dir" ] 23 then 24 uid=$(echo $GOVC_GUEST_LOGIN | awk -F: '{print $1}') 25 dir=$(govc guest.getenv -vm ${vm_name} HOME | awk -F= '{print $2}') 26 27 if [ -z "$dir" ] 28 then 29 echo "Can't find ${uid}'s HOME dir..." 30 exit 1 31 fi 32 fi 33 34 govc guest.mkdir \ 35 -vm ${vm_name} \ 36 -p \ 37 ${dir}/.ssh 38 39 govc guest.upload \ 40 -vm ${vm_name} \ 41 -f \ 42 ${PUBLIC_KEY_FILE} \ 43 ${dir}/.ssh/authorized_keys 44 }