3 марта 2019 г.

Ввод пароля пользователя в скрипте при подключении через SSH

Привет, люд. Такая вот случилась история.
Необходимо было написать скрипт, в котором нужно было подключаться к куче машин по ssh. Соответственно, на каждой fingerprint надо подтвердить и пароль пользователя ввести и наткнулся я на такое решение.

1. Устанавливаем, если не установлен, пакет expect.
sudo apt-get install expect

2. Создаем в каталоге файл /usr/bin/exp

sudo touch /usr/bin/exp

3. Помещаем туда следующие строки

#!/usr/bin/expect

set timeout 20

set cmd [lrange $argv 1 end]
set password [lindex $argv 0]

eval spawn $cmd
expect "passphrase for key"
send "$password\r";
interact



4. Теперь надо сделать этот файлик исполняемым

sudo chmod +x /usr/bin/exp

5. Вуаля и пример использования

exp <пароль> ssh -oStrictHostKeyChecking=no user@host.example.com

P.S.
Можно было бы сделать при помощи пакета sshpass, но вот у меня есть expect и нету sshpass. Так что вот так
Если есть возможность, не делайте такой велосипед, а делайте вот так
sudo apt-get install sshpass
sshpass -p <password> ssh user@host.example.com





 

Комментариев нет:

Отправить комментарий