При входе на мой удаленный сервер он ожидает ввода данных пользователем, его bash_profile изменен таким образом.
[nikhil]$ cat .bash_profile
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
read -p "enter your name " Name
echo $Name
Как мне войти на этот удаленный сервер с помощью SSH и передать эти данные через скрипт?
решение1
Установить expect
:
apt-get install expect
Запустите следующий скрипт:
$ expect <<EOF
set timeout -1
spawn ssh -o "StrictHostKeyChecking=no" root@server
expect "root@server's password:"
send -- "12345678PASSWORD\r"
expect "enter your name "
send -- "susan\r"
expect "root@server"
send -- "echo $$\r"
send -- "exit\r"
expect eof
EOF
Адаптируйте следующее:
root@server
с вашими реальными параметрами подключения к серверу- очевидно, пароль
- имя, которое вы хотите предоставить скрипту внутри
.bash_profile
на целевом сервере - фактическая команда, которую вы хотите запустить на целевом сервере (вместо
echo $$
)