Используйте sshpass
sshpass (github, man page) - это инструмент, который автоматически передает пароль в ssh. Безопасный способ использовать это это:
% echo 'correct horse battery staple' > ~/.ssh/compute_password
% chmod go-rw ~/.ssh/compute_password
% sshpass -f ~/.ssh/compute_password ssh foo@host
Это прочитает пароль из ~/.ssh/compute_password , очень похоже на файл с закрытым ключом без ключевой фразы. Вы можете поместить команду sshpass в небольшой скрипт оболочки или псевдоним оболочки, чтобы избежать ввода этой полной команды. К сожалению, я не нашел способа сделать это из ~/.ssh/config .
(Также можно указать пароль непосредственно в командной строке для sshpass , но этого следует избегать, так как он дает пароль любому, кто может сделать ps)
Сравнение с другими методами
Этот подход, конечно, менее безопасен, чем правильно настроенная аутентификация с открытым ключом, но вы, вероятно, уже это знаете.
Он также менее безопасен, чем ответ @ grawity о повторном использовании соединения, но имеет то преимущество, что вообще не требует ввода пароля в интерактивном режиме.
Вы можете рассматривать ответ @ grawity как альтернативу аутентификации pubkey с использованием парольной фразы и кэширования закрытого ключа (т.е. ssh-agent). Тогда мой ответ будет альтернативой аутентификации pubkey без ключевой фразы в файле закрытого ключа.