使用bash腳本中的Expect為SSH命令提供密碼對于那些想回復(fù)我應(yīng)該使用SSH鍵的人,請棄權(quán)。我試圖在bash腳本中使用Expect來提供SSH密碼。提供密碼工作,但我沒有結(jié)束在SSH會話,我應(yīng)該,它回到海峽的打擊。我的劇本:#!/bin/bashread -s PWD/usr/bin/expect <<EOD
spawn ssh -oStrictHostKeyChecking=no -oCheckHostIP=no usr@$myhost.example.com'
expect "password"
send "$PWD\n"
EOD
echo "you're out"我的腳本的輸出:spawn ssh -oStrictHostKeyChecking=no -oCheckHostIP=no usr@$myhost.example.com
usr@$myhost.example.com's password: you're out我希望擁有我的SSH會話,并且只有當(dāng)我退出SSH會話才能返回到bash腳本。我之所以在Expect之前使用bash,是因?yàn)槲沂褂昧艘粋€菜單,我可以選擇連接到哪個單元。謝謝
3 回答

慕斯王
TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超2個贊
#!/usr/bin/expecteval spawn ssh -oStrictHostKeyChecking=no -oCheckHostIP=no usr@$myhost.example.com#use correct promptset prompt ":|#| \\\$"interact -o -nobuffer -re $prompt returnsend "my_password\r"interact -o -nobuffer -re $prompt returnsend "my_command1\r" interact -o -nobuffer -re $prompt returnsend "my_command2\r"interact
#!/bin/bash/usr/bin/expect -c 'expect "\n" { eval spawn ssh -oStrictHostKeyChecking=no -oCheckHostIP=no usr@$myhost.example.com; interact }'

12345678_0001
TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個贊
sshpass -p<password> ssh <arguments>sshpass -ptest1324 ssh user@192.168.1.200 ls -l /tmp
注:man sshpass

慕碼人8056858
TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超6個贊
#!/bin/bashread -s PWD/usr/bin/expect <<EOD spawn ssh -oStrictHostKeyChecking=no -oCheckHostIP=no usr@$myhost.example.com expect "password"send "$PWD\n" interact EOD echo "you're out"
添加回答
舉報
0/150
提交
取消