Автоввод SSH пароля в скрипте
Правильней, при автоматизации доступа использовать ssh-ключ без пароля, но иногда возникает необходимость использования именно парольной аутентификации.
sshpass
Чтобы исключить интерактивность в данном сценарии, можно использовать пакет sshpass.
Для начала, необходимо его установить.
Использовать нестандартный порт:
expect
#!/usr/bin/expect -f
spawn ssh username@server "touch /home/user/ssh_example"
expect "Password:"
send "PASSWORD\r"
interact
С запросом пароля
#!/bin/sh
read -s -p "Введите пароль: " SSHPASS
export SSHPASS
sshpass -e ssh -o PreferredAuthentications=keyboard-interactive -o PubkeyAuthentication=no "$@"
unset SSHPASS
Пример с алиасом
Можно логиниться к серверу, используя алиас.
Для начала, создадим скрипт /usr/local/bin/ssh_script.sh со следующим содержимым:
Пароль из файла
echo "echo YourPasswordHere" > /tmp/.ssh_pass
export SSH_ASKPASS="/tmp/.ssh_pass"
export DISPLAY=YOURDOINGITWRONG
setsid ssh root@owned.com -p 22