當登入我的遠端伺服器時,它需要使用者輸入,它的 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 $$
)