我想自動化ssh登錄。經過一番研究,似乎tcl/expect是要走的路線。自動化ssh登錄:tcl expect交互命令行爲怪異
但是,我的問題是,當交互接管我的終端,東西不能按預期工作(雙關語不是預期的)。
例如,如果我調整終端大小,它不會「取」。另外,有時互動不響應,有時它只是無緣無故地掛起。我在下面列出了我的代碼。我的代碼問題是,我錯過了什麼?
另外,有沒有更好的方法來做到這一點(與另一種腳本語言?)我需要終端非常靈敏,沒有比在手持式控制檯上手動鍵入ssh沒有什麼不同。
proc Login {username server password} {
set prompt "(%|>|\#|\\\$) $"
spawn /usr/bin/ssh [email protected]$server
expect {
-re "Are you sure you want to continue connecting (yes/no)?" {
exp_send "yes\r"
exp_continue
#continue to match statements within this expect {}
}
-nocase "password: " {
exp_send "$password\r"
interact
}
}
}
大概你不能使用'ssh-keygen'生成認證的RSA/DSA密鑰? – 2010-07-21 18:39:20