通過expect實現ssh協議自動輸密碼

神諭丶發表於2015-03-19


由於expect是基於tcl的,所以首先要安裝tcl

我的環境是RHEL 6 + expect-5.43.0 + tcl8.4.19


首先tcl:
tar zxvf tcl8.4.19-src.tar.gz
cd tcl8.4.19/unix/
./configure
make && make install
安裝完後pwd一下,等下configure expect時需要用到

然後expect:
tar zxvf expect-5.43.0.tar.gz
cd expect-5.43
#此處 --with-tclinclude 的路徑為tcl目錄下generic的絕對路徑
./configure --with-tclinclude=/home/dev/software/tcl8.4.19/generic/ --with-tclconfig=/usr/local/lib/
make && make install

完成安裝後,輸入expect可以驗證是否已經安裝好



通過簡單指令碼就可以實現自動輸入密碼了

#!/bin/bash
expect -c "
set timeout 5;
spawn /usr/bin/scp -r /home/dev/log dev@192.168.1.192:/home/dev/
expect {
\"*yes/no*\" {send \"yes\r\"; exp_continue}
\"*password*\" {send \"yourpassword\r\";}    #修改成遠端主機使用者的密碼
}
expect eof;"





來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29773961/viewspace-1465740/,如需轉載,請註明出處,否則將追究法律責任。

相關文章