Как включить пароль с помощью команды SSH? (хочу сделать скрипт оболочки)

Я пытаюсь подключиться к серверу SSH при запуске с помощью сценария .sh, но для этого потребуется ввести пароль для учетной записи на сервере, к которому я подключаюсь по SSH. Я сделал некоторое RTFMing, и я вижу в «-o», что у него есть «PasswordAuthentication», но я не уверен, как или если бы я мог использовать эту опцию. Поскольку это будет в сценарии оболочки, очевидно, что я хотел бы, чтобы пароль был в этом файле, или в любом случае не нужно вводить пароль вручную при каждом запуске сценария.

3
задан 1 December 2012 в 13:35

3 ответа

Сейчас я разговариваю по телефону, поэтому не могу дать вам подробный ответ. На мой взгляд, правильным решением здесь является использование аутентификации на основе ключей. В основном вы используете ssh-keygen (я думаю) для генерации пары открытый / закрытый ключ. Так как вам нужен доступ к скрипту, введите пустой пароль при появлении запроса. Затем перейдите по соответствующим справочным страницам, чтобы установить открытый ключ на сервере и установить закрытый ключ на свое место.

Теперь вы сможете войти на этот сервер безопасно и без пароля. Обратите внимание, что под безопасностью я подразумеваю, пока ваша учетная запись пользователя не скомпрометирована.

0
ответ дан 1 December 2012 в 13:35

Этот поток на ServerFault предлагает два способа, один с sshpass:

sudo apt-get install sshpass
sshpass -p your_password ssh user@hostname

и один с expect:

#!/usr/bin/expect -f
#  ./ssh.exp password 192.168.1.11 id
set pass [lrange $argv 0 0]
set server [lrange $argv 1 1]
set name [lrange $argv 2 2]

spawn ssh $name@$server
match_max 100000
expect "*?assword:*"
send -- "$pass\r"
send -- "\r"
interact
0
ответ дан 1 December 2012 в 13:35

Я бы предложил использовать ssh-keygen для генерации ключа ssh и использовать его для входа на удаленный ssh-сервер.

Процедура объясняется здесь .

0
ответ дан 1 December 2012 в 13:35

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

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