Обойдите ssh подсказку пароля из сценария оболочки

Zenity - Основанный на GTK, аккуратный, относительно легкий (если у Вас уже есть GTK, втянутый другими программами, который является).

5
30.05.2012, 02:05
2 ответа

Один способ сделать это путем определения -o PasswordAuthentication=No как часть Вашей команды SSH:

ssh -o PasswordAuthentication=no user@server

Это удаляет PasswordAuthentication из списка выбора аутентификации, что клиент SSH должен говорить с сервером, препятствовать тому, чтобы Вы придерживались на подсказке Пароля. Обратите внимание, что это также позволяет другим механизмам аутентификации кроме PubkeyAuthentication работать (RHostsRSAAuthentication, и т.д.). Если Вы хотите использовать PubkeyAuthentication только...

ssh -o PreferredAuthentications=publickey user@server

12
27.01.2020, 20:32

Можно записать сценарий оболочки, в котором можно обеспечить пароль, который сделает автоматический вход в систему в ssh сервер.

Но Вы должны иметь, ожидают пакет, установленный для этого сценария.

В Redhat ожидайте, что пакет прибывает по умолчанию. Но в Ubuntu необходимо установить его отдельно.

Можно проверить это при помощи команд:

$ rpm -qa | grep expect для Redhat

$ dpkg -l expect для Ubuntu

Можно записать сценарий оболочки, который обеспечит пароль ssh сервера следующим образом:

#!/usr/bin/expect
spawn ssh user@ssh-server-ip   
expect "user@ssh-server-ip's password:"    
send "password\r"       
interact    

Этот сценарий должен сделать Вашу задачу.

4
27.01.2020, 20:32
  • 1
    Хранение (пользователя) пароли в открытом тексте в файле является плохой практикой. Используя Ожидать сценарий для взаимодействия с SSH ненадежно, это может повредиться по обновлениям версии. –  jippie 30.05.2012, 10:56

Теги

Похожие вопросы