Привет, люд. Такая вот случилась история.
Необходимо было написать скрипт, в котором нужно было подключаться к куче машин по ssh. Соответственно, на каждой fingerprint надо подтвердить и пароль пользователя ввести и наткнулся я на такое решение.
1. Устанавливаем, если не установлен, пакет expect.
sudo apt-get install expect
2. Создаем в каталоге файл /usr/bin/exp
sudo touch /usr/bin/exp
3. Помещаем туда следующие строки
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
Необходимо было написать скрипт, в котором нужно было подключаться к куче машин по 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
Комментариев нет:
Отправить комментарий