generateKey() { touch sshKey touch sshKey.pub rm sshKey rm sshKey.pub ssh-keygen -t ed25519 -f ./sshKey -q -N "" -C "" } deployKey() { sshpass -p alarm ssh-copy-id -i ./sshKey.pub -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o PubkeyAuthentication=false alarm@$1 } # If keys are present, we just need to deploy it and destroy the SSH Agent # Otherwise, we genrate a key and then deploy it # The key can be present on the remote host multiple times, # -> not a big issue, just not clean, but it works [ -e sshKey ] && [ -e sshKey.pub ] || generateKey for remoteHost in "$@" do echo "$remoteHost" deployKey "$remoteHost" done export SSH_AUTH_SOCK=/dev/null