以下來自:
expect是在tcl基礎上建立起來的,它還提供了一些tcl所沒有的命令,它可以用來做一些linux下無法做到互動的一些命令操作,在遠端管 理方面發揮很大的作用。
spawn命令啟用乙個unix程式來進行互動式的執行。
send命令向程序傳送字串。
expect 命令等待程序的某些字串。
expect支援正規表示式並能同時等待多個字串,並對每乙個字串執行不同的操作.
a. tcl 安裝
主頁:
wget
2.解壓縮原始碼包
tar xfvz tcl8.4.11-src.tar.gz
3.安裝配置
cd tcl8.4.11/unix
./configure --prefix=/usr/tcl --enable-shared
make
make install
安裝完畢以後,進入tcl源**的根目錄,把子目錄unix下面的tclunixport.h copy到子目錄generic中。
暫時不要刪除tcl源**,因為expect的安裝過程還需要用。
b. expect 安裝 (需tcl的庫)
主頁:
wget
2.解壓縮原始碼包
tar xzvf expect5.45.tar.gz
3.安裝配置
cd expect5.45
./configure --prefix=/usr/expect --with-tcl=/usr/tcl/lib --with-tclinclude=../tcl8.4.11/generic
make
make install
ln -s /usr/tcl/bin/expect /usr/expect/bin/expect
通過指令碼批量部署ssh私鑰認證
[b]最好用yum install expect來安裝
[b]把指令碼放置/expect下面,注意有的需要用》[/b][/b]
先建立乙個sh指令碼:
test.sh
#!/bin/bash
cd /expect
cat /root/.ssh/id_rsa.pub > /root/.ssh/authorized_keys
for i in `cat /expect/ip.txt`
do ip=$(echo "$i"|cut -f1 -d":")
password=$(echo "$i"|cut -f2 -d":")
expect -c "
spawn scp /root/.ssh/authorized_keys /expect/remote_operate.sh root@$ip:/tmp/
expect
\"*password*\"
\"*password*\"
} "
expect -c "
spawn ssh root@$ip "/tmp/remote_operate.sh"
expect
\"*password*\"
\"*password*\"
} "
done
以下為remote_operate.sh指令碼內容:
#!/bin/bash
if [ ! -d /root/.ssh ]; then
mkdir /root/.ssh
ficp /tmp/authorized_keys /root/.ssh/
以下為ip.txt內容
# more ip.txt
192.168.1.114:haning
192.168.1.115:haning
192.168.1.112:haning
以上ok後。只需要執行sh test.sh
linux 批量ssh認證
redis01 root cd ssh bash cd ssh no such file or directory redis01 root pwd root redis01 root cd ssh redis01 root ssh ls known hosts redis01 root ssh l...
ssh 公鑰私鑰認證原理
通常,通過ssh登入遠端伺服器時,使用密碼認證,分別輸入使用者名稱和密碼,兩者滿足一定規則就可以登入。但是密碼認證有以下的缺點 而使用公鑰認證則可以解決上述問題。所謂的公鑰認證,實際上是使用一對加密字串,乙個稱為公鑰 public key 任何人都可以看到其內容,用於加密 另乙個稱為金鑰 priva...
ssh 公鑰私鑰認證原理
通常,通過ssh登入遠端伺服器時,使用密碼認證,分別輸入使用者名稱和密碼,兩者滿足一定規則就可以登入。但是密碼認證有以下的缺點 而使用公鑰認證則可以解決上述問題。所謂的公鑰認證,實際上是使用一對加密字串,乙個稱為公鑰 public key 任何人都可以看到其內容,用於加密 另乙個稱為金鑰 priva...