Автоматизируем работу с sshpass.

Иногда на серверах клиента приходится решать задачи применяя при этом не стандартные (порой не самые удачные) подходы. В работе есть ряд серверов, на которых установить SSH ключ не представляется возможным (фактор скорее человеческий, чем технический), однако для работы с такими серверами всё равно требуется автоматизациия. В этом случае серьёзно выручает sshpass — утилита, которая позволяет выполнять команды на удалённом сервере по SSH без ввода пароля вручную.

Работает она вот так:

sshpass -p superpassword ssh root@superserver.com -p2222 supercommand

В примере, на сервере superserver.com выполняется команда supercommand, для выполнения команды происходит авторизация по SSH с паролем superpassword.

[sysadmin@localhost ~]$ sshpass -p superpassword ssh root@superserver.com -p2222 ls -la /root/home/
итого 12
drwxr-xr-x 3 root root 4096 мар 20 18:24 .
drw-r-----. 23 root root 4096 май 2 19:35 ..
drwxr-xr-x 3 root root 4096 мар 20 18:24 test
[sysadmin@localhost ~]$

С помощью sshpass автоматический ввод пароля можно использовать так же и для scp и rsync:

sshpass -p superpassword scp -P2222 ./test.html root@superserver.com:/root/home/
sshpass -p superpassword rsync -avz -e "ssh -p2222" ./test/ root@superserver.com:/root/home/

А ещё я у себя с помощью этой утилиты настроил автоматический вход на серверы по ssh из KeePassX. Выглядит это вот так:

Создана отдельная запись, с логинм, паролем, и командой запуска терминала в котором выполняется запуск sshpass и вход на сервер. Теперь, при нажатии сочетания Ctrl+u я получаю открытую в терминале вкладку с уже авторизованной на сервере консолью.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *