Автоматизация аутентификации по одноразовому паролю

Возможно войти на удаленный хост без пароля, т.е. 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 не доступны для других пользователей в вашей системе, потому что в этом случае они смогут подключиться и к вашему серверу!

Другие вопросы по тегам