利用expect互動實現對主機批量建立SSH信任

2021-09-19 17:19:34 字數 899 閱讀 4082

#ssh免密驗證,shell自動設定

echo '#!/bin/sh

. /etc/init.d/functions

[[ -f /usr/bin/expect ]] || #若沒expect則安裝

[ $? = 0 ] || #安裝失敗則退出

pub=/'`whoami`'/.ssh/id_dsa.pub #公鑰路徑

[[ -f $pub ]] || #若沒公鑰則生成

#expect自動互動

function exp()

"password:"  

eof

}eof}#

for i in `cat /tmp/ip.txt`

doip=$(echo "$i"|cut -f1 -d":")

pass=$(echo "$i"|cut -f2 -d":") 

exp >/dev/null 2>&1

echo $n hostname >/dev/null 2>&1

[[ $? == 0 ]] && action "*****===$n" /bin/true || action "*****===$n" /bin/false

done

'>./ssh.sh

##################以上是生成shell檔案ssh.sh##################

建立被登入端ip列表

列表中伺服器ip和密碼用冒號":" 分割

[root@lnamp ~]# cat >> ip.txt << eof

192.168.8.50:admin1

192.168.8.220:admin2

ip:password

eof#執行shell檔案,ssh批量認證

sh ./ssh.sh

expect實現無互動切入root

expect 可以實現無互動 1.yum install y expect 先進行安裝 2.which expect 檢視位置 一般在 usr bin expect 然後就可以使用expect命令 傳送命令 例如執行乙個遠端 執行完就會產生乙個程序但是不會馬上讓你輸入密碼 expect expect...

使用expect指令碼實現linux的互動式操作

root localhost tar zxvf tcl8.6.8 src.tar.gz root localhost cd tcl8.6.8 unix root localhost configure prefix usr tcl enable shared root localhost make ...

使用expect實現自動互動,自動登入指令碼

使用expect實現自動互動,自動登入指令碼 指令碼 如下 usr bin expect set timeout 30 spawn ssh l username 192.168.1.1 expect password send ispass r interact 1.usr bin expect 這...