0
我是新來的期望腳本,並有一個用例,我需要從一臺機器上執行ssh,在這臺機器上我已經使用expect腳本完成了ssh。這是我的代碼片段使用expect腳本從遠程機器執行ssh
#!/usr/bin/expect -f
set timeout 60
spawn ssh [email protected]
expect "Password: "
send "Password\r"
send "\r" # This is successful. I am able to login successfully to the first machine
set timeout 60
spawn ssh [email protected] #This fails
這需要時間的一定量和失敗說 的ssh:連接到主機machine2.domain.com端口22:操作超時。我知道22是ssh運行的默認端口,我可以通過給ssh一個-p選項來手動覆蓋它。
如果我在沒有期望腳本的情況下獨立嘗試ssh,我會得到一個提示,要求我輸入(是/否)。如果我沒有期望腳本直接執行ssh,從哪裏接收正確的端口。如果我不需要在shell上輸入端口號,爲什麼在我使用期望腳本時需要輸入端口號。
我花了一個晚上睡覺,瞭解我在mu what什麼。在我可以在劇本中做出改變之前,你已經回答了。只是修改了第二次嘗試ssh到發送而不是產卵和它的工作。謝謝。 –