Автоввод SSH пароля в скрипте

Правильней, при автоматизации доступа использовать ssh-ключ без пароля, но иногда возникает необходимость использования именно парольной аутентификации.

sshpass

Чтобы исключить интерактивность в данном сценарии, можно использовать пакет sshpass.
Для начала, необходимо его установить.

apt-get install sshpass
Теперь можно войти на сервер:

sshpass -p "MySecretPass" ssh -o StrictHostKeyChecking=no username@server
Или так:

sshpass -p mypassword autossh -M0 -t myusername@myserver

Использовать нестандартный порт:

sshpass -p "MySecretPass" ssh -o StrictHostKeyChecking=no username@server:2400

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 со следующим содержимым:

#!/bin/bash
sshpass -p mypassword ssh root@$1
Затем, пропишем скрипт в алис, и входим без ввода пароля:

echo -e "alias ssp='/usr/local/bin/ssh_script.sh'" >> ~/.bashrc
source ~/.bashrc
ssp <server_ip>

Пароль из файла

echo "echo YourPasswordHere" > /tmp/.ssh_pass
export SSH_ASKPASS="/tmp/.ssh_pass"
export DISPLAY=YOURDOINGITWRONG
setsid ssh root@owned.com -p 22
stackoverflow