Утилита sshpass
— инструмент командной строки Linux, позволяющий выполнять аутентификацию с паролем в неинтерактивном режиме при подключении к удаленным компьютерам. Благодаря своему функционалу, эта команда полезна для написания сценариев и автоматизации задач, требующих доступа к другим операционным системам через защищенный канал.
В этой статье мы расскажем, как использовать sshpass
в ОС Linux.
Содержание:
- Установка sshpass в ОС Linux
- Передача пароля непосредственно команде sshpass
- Передача пароля с помощью переменной SSHPASS
- Использование файла с паролем для аутентификации в удаленной ОС
- Отправка файлов с помощью scp и rsync
- Написание скрипта Bash для подключения к удаленному хосту с помощью sshpass
- Выводы
Установка sshpass в ОС Linux
Инструмент sshpass
доступен для установки из стандартных репозиториев в большинстве современных дистрибутивов Linux. Поэтому для инсталляции утилиты выполните одну из следующих команд.
Для Debian / Ubuntu Linux:
Для RHEL / CentOS Linux:
Для Fedora Linux:
Читайте также: 27 команд DNF (форк команды Yum) для управления пакетами RPM в Linux.
Чтобы получить информацию об утилите, выполните команду sshpass
с опцией -h
:
Передача пароля непосредственно команде sshpass
При подключении к удаленному компьютеру с помощью sshpass
Вы можете напрямую передать пароль этой команде. Для этого используется опция -p
.
Важно: написание пароля в командной строке или в скриптах может угрожать безопасности, так как он будет отображаться в окне терминала или в истории команд.
Тем не менее, синтаксис команды sshpass
с опцией -p
имеет следующий вид:
На скриншоте выше видно, что подключение к удаленной ОС в неинтерактивном режиме прошло успешно.
Читайте также: Как настроить SSH-доступ по ключу в Linux.
Передача пароля с помощью переменной SSHPASS
Для более безопасного использования утилиты Вы можете сохранить пароль в переменной SSHPASS
. А затем при подключении к удаленному ПК указать sshpass
использовать значение переменной. Для этого следует применить опцию -e
. Например:
Использование файла с паролем для авторизации в удаленной ОС
Также утилита sshpass
может считывать пароли из файлов. К примеру, у Вас есть возможность записать пароль в какой-либо текстовый документ, и потом передать файл в качестве аргумента sshpass
. Для этого также потребуется использовать опцию -f
:
Отправка файлов с помощью scp и rsync
В операционной системе Linux есть несколько утилит, которые позволяют пересылать файл с одного компьютера на другой с помощью протокола SSH. Одними из них являются scp
и rsync
.
Допустим, Вам нужно отправить файл /home/user/text.txt
в каталог /home/user1/Desktop
на удаленном хосте с помощью scp
. Чтобы это сделать, выполните в терминале:
Читайте также: 10 примеров команды scp для передачи файлов по SSH в Linux.
Чтобы убедиться, что отправка прошла успешно, просмотрите содержимое папки /home/user1/Desktop
на удаленном ПК:
По такому же принципу можно пересылать файлы на удаленный хост с использованием утилиты rsync
. К примеру:
Вы также можете проверить, что отправка прошла успешно, выполнив команду ls -l
на удаленном ПК:
Написание скрипта Bash для подключения к удаленному хосту с помощью sshpass
Чтобы каждый раз не вводить команду в терминале для аутентификации на удаленном ПК, Вы можете написать скрипт Bash, который позволит автоматизировать эту задачу. Например:
Читайте также: 10 полезных советов для написания эффективных bash скриптов в Linux.
Важно: не забудьте установить для скриптового файла права доступа на исполнение:
Выводы
Теперь Вы знаете, как использовать утилиту sshpass
для подключения к удаленным компьютерам в ОС Linux. Не забывайте соблюдать меры информационной безопасности во время использования этой команды.
Спасибо за время, уделенное прочтению статьи!
Если возникли вопросы — задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.