По умолчанию, когда вы пытаетесь войти на SSH-сервер, он запрашивает у вас пароль. Но если ваш сценарий оболочки требует автоматического доступа к SSH, может возникнуть проблема с предоставлением пароля SSH при каждом запуске сценария. В таких случаях рекомендуется указывать пароль SSH внутри сценария оболочки или приложения. В этой статье мы узнаем, как передать пароль SSH в сценарии оболочки.
Как передать пароль SSH в сценарии оболочки
Здесь описаны шаги для передачи пароля SSH и автоматизации входа в систему SSH.
Установите SSHPass
Обычно, когда вы подключаетесь к SSH-серверу с помощью следующей команды, вам предлагается ввести пароль.
1 | ssh [имя пользователя]@[хост] |
SSHpass - это мощная утилита, которая позволяет передавать SSH-пароль при подключении к SSH-серверу. Поэтому сначала мы установим эту утилиту в нашу систему. Для этого откройте терминал и выполните следующую команду.
Ubuntu, Debian
1 | sudo apt-get install sshpass |
Fedora, CentOS
1 | yum install sshpass |
Передача пароля SSH
Далее вы можете указать пароль SSH при каждом запуске команды sshpass, как показано ниже. Замените YOUR_PASSWORD, YOUR_USERNAME и EXAMPLE.COM на ваш SSH пароль, имя пользователя и имя хоста соответственно.
1 | sshpass -p "YOUR_PASSWORD" ssh -o StrictHostKeyChecking=no USERNAME@EXAMPLE.COM |
Если вы хотите подключиться к порту, отличному от 22, вы можете указать его в команде, как показано ниже. Здесь мы подключаемся к порту 2200.
1 | sshpass -p "YOUR_PASSWORD" ssh -o StrictHostKeyChecking=no USERNAME@EXAMPLE.COM:2200 |
Вы также можете использовать опцию -f, чтобы заставить sshpass считывать пароль из файла.
Вы можете вызвать приведенную выше команду из сценария оболочки, чтобы автоматически подключиться к SSH-серверу, не выдавая никаких запросов.
Заключение
В этой небольшой статье мы узнали, как задать пароль SSH в сценарии оболочки. SSHpass - это очень полезная утилита для автоматизации задач и процессов, требующих входа в систему SSH. Она также предлагает множество опций, которые помогут вам настроить SSH-соединение.