В общем (игнорируя vagrant или другие системные данные) лучше всего настроить аутентификацию с помощью ключей SSH и запустить ssh-agent
. Затем откройте сеанс ssh с помощью чего-то вроде:
# load the key to the agent with a 10 s timeout
# this asks for the key passphrase
ssh-add -t10 ~/.ssh/id_rsa
for x in 1 2 3 ; do
ssh ....
done
Или, если вы не можете использовать ключи, вы можете что-нибудь настроить с помощью sshpass
.
read -p "Enter password: " -s SSHPASS ; echo
for x in 1 2 3 ; do
sshpass -e ssh ...
done
unset SSHPASS
Хотя терминал находится посередине, это оставит пароль, установленный в среде терминала. Чтобы обойти это, вы можете временно сохранить пароль в файле:
read -p "Enter password: " -s SSHPASS ; echo
PWFILE=~/.ssh/secret_password
cat <<< "$SSHPASS" > "$PWFILE"
unset SSHPASS
for x in 1 2 3 ; do
sshpass -f "$PWFILE" ssh ...
done
shred --remove "$PWFILE"
Это все еще не оптимально, так как есть вероятность, что пароль попадет на диск, поэтому ключи будут лучше.