Автоматизация аутентификации по одноразовому паролю
Возможно войти на удаленный хост без пароля, т.е. ssh-copy-id <host>
,
Однако мне нужно вводить одноразовый пароль (OTP) каждый раз, когда я подключаюсь к удаленному хосту. Как я могу пропустить эту часть OTP? Можно ли хранить сессию SSH на моем ПК в течение ограниченного времени?
Я использую Ubuntu 16.04.02
1 ответ
Нет. Смысл "второго фактора" заключается в том, что он отличается от пароля, и поэтому его не следует хранить на том же устройстве, что и первый фактор.
Одноразовый пароль - это интерактивный вызов-ответ, поэтому его не рекомендуется автоматизировать (в целях безопасности).
Но... есть ControlMaster
особенность с ControlPersist
опция в OpenSSH, которая делает то, что может решить ваши проблемы. Это позволяет вам запускать несколько сессий ssh с использованием одного TCP-соединения и сохранять это мастер-соединение в течение некоторого времени после окончания оригинала.
Как это сделать? Сохраните этот фрагмент конфигурации в ~/.ssh/config
:
Host your-server
ControlPath ~/.ssh/control-master-%C
ControlMaster auto
ControlPersist 5m
Но убедитесь, что созданные сокеты в ~/.ssh/control-master-%C
не доступны для других пользователей в вашей системе, потому что в этом случае они смогут подключиться и к вашему серверу!