mac自帶的終端不太好用,被推薦了一個iterm2的終端替代工具,確實比自帶的終端好用不少。下面記錄下通過腳本一鍵遠程登錄的過程:
下載地址:http://m4.pc6.com/xuh3/iTerm2.zip
首先,准備好登陸腳本
#!/usr/bin/expect -f set user xxx set host 127.0.0.1 set port 22 #如果是默認端口可以不指定 set password xxx set timeout -1 spawn ssh -p $port $user@$host expect "*assword:*" send "$password\r" expect "*xxx*" send "./brige\r" expect "*password*" send "xxx\r" expect "*xxx*" send "./login\r" expect "*password*" send "xxx\r" interact expect eof
這里解釋一下: xxx都是用戶名或者密碼
很重要的一點,這里其實做了三個層次的登陸,要特別注意,登陸了第一層之后,就不可以直接用send語句或者spawn發送登陸命令了,至於為什么搞不懂,
現象是會卡在這一步,不會出現輸入密碼的提示符。
因此,從第二層機器開始,都要新建一個腳本,只需要一行代碼: ssh user@host,就可以了,然后通過send './login\r',通過send來發送執行這個登陸腳本等命令,這樣就不會卡在那里。
當然,如果沒有跳板機,只有一層登陸的話,就不需要這么麻煩了,直接通過spawn執行登陸命令即可。
然后這個expect命令解釋一下,expect "*root*"表示等待出現帶有root的提示符,否則阻塞在這一行,支持*通配符,因此這個可以自己定義。監聽到出現了期望的字符串時,即繼續執行下一行腳本。
最后一個要主意的就是最后兩行
interact
expect eof
這兩行一定不能少,放在最后就可以了。
准備好了腳本之后,iterm2的設置很簡單。
Profiles->open profiles->Edit profiles
點擊左下方的加號,新增一個鏈接,填一下name,然后下面選擇command,command填入剛剛准備好的腳本的路徑。

