Используйте 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 без ключевой фразы в файле закрытого ключа.