互信脚本
链接:https://pan.baidu.com/s/1woaT0qcQmhzWKpM-YsA76g
提取码:m8j7
[root@server1 ~]# cat /home/auth/README.md
使用步骤: #首先在执行机上安装expect包yum localinstall -y tcl-8.5.13-8.el7.x86_64.rpm expect-5.45-14.el7_1.x86_64.rpm,机器有yum源直接执行yum install -y expect也可以 1.将auth目录放到执行机/home下 2.在执行机执行ssh-keygen -t rsa,一直回车。建立公钥(远端使用)和私钥(本地使用) #参数 -t rsa 表示使用rsa算法进行加密 #执行后,会在/home/当前用户/.ssh目录(root用户在/root/.ssh)下找到id_rsa(私钥)和id_rsa.pub(公钥) 2.增加执行权限chmod +x /home/auth/chroot.exp 3.将需要做互信的机器ip写到ips文件中 4.执行sh /home/auth/exec.sh即可完成互信
[root@server1 ~]# cat /home/auth/ips
192.168.0.104 192.168.0.109 192.168.0.108 192.168.0.102 192.168.0.105 192.168.0.106
[root@server1 ~]# cat /home/auth/exec.sh
#!/bin/bash for ip in `cat /home/auth/ips` do /home/auth/chroot.exp $ip >/dev/null echo "$ip" done
[root@server1 ~]# cat /home/auth/chroot.exp
#!/usr/bin/expect #lindex $argv 0表示IP这个变量取.exp文件后面跟的第一个字符 set IP [lindex $argv 0] set ANSWER yes set PASSWD redhat #设置超时时间,单位是秒,-1表示无限等待 set timeout -1 #ssh-copy-id命令可以把本地主机的公钥复制到远程主机的authorized_keys文件上,ssh-copy-id命令也会给远程主机的用户主目录(home)和~/.ssh, 和~/.ssh/authorized_keys设置合适的权限。-i指定公钥文件。如果是和远程机器root之外的用户做互信,只需要把@$IP前的root改为其他用户名即可 spawn ssh-copy-id -i /root/.ssh/id_rsa.pub root@$IP #expect判断上次输出结果里是否包含connecting字符串,包含就发送$ANSWER。没有就等待一段时间发送,这个等待时间就是前面timeout的值 expect { #在执行sqawn后面的命令时在匹配到的connecting字符的交互界面里面输入$ANSWER,如果没有这条交互,ecp_continue表示跳过继续进行下一条交互界面匹配。\r表示回到行首,这里可解释为回车。 "*connecting" { send "$ANSWER\r" ; exp_continue } "*password" { send "$PASSWD\r" } } #退出expect环境,interact代表留在expect环境 expect eof
浙公网安备 33010602011771号