#!/bin/bash # #******************************************************************** #Author:zhangzhuo #QQ: 1191400158 #Date: 2021-01-14 #FileName:ssh_host.sh #URL: https://www.zhangzhuo.ltd #Description:The test script #Copyright (C): 2021 All rights reserved #******************************************************************** . /etc/init.d/functions #执行脚本的主机IP地址,与密码 SET_IP=192.168.10.81 SET_PASS=123456 #远程主机的IP,与密码 IP=" 192.168.10.71 192.168.10.72 " PASS='123456' #在执行脚本的主机生成密钥和认证信息 ssh-keygen -P "" -f /root/.ssh/id_rsa &>/dev/null sshpass -p $SET_PASS ssh-copy-id -o StrictHostKeyChecking=no $SET_IP &>/dev/null action "分发的私钥和认证信息已经生成" #远程拷贝密钥 for i in $IP;do expect <<EOF &>/dev/null set timeout 20 spawn scp -r /root/.ssh $i:/root expect { "y/n" { send "y\n";exp_continue } "yes/no" { send "yes\n";exp_continue } "password" { send "${PASS}\n" } } expect eof EOF action "主机${i} SSH的key认证已配置" done
脚本注意事项:
- 在那台主机执行请把 SET_IP 与 SET_PASS 修改为执行主机的 IP 与密码
- 要设置远程机器的 key 验证把主机 IP 写到 IP 变量中,多个一个放一行
- 远程机器的密码只支持相同的主机
- 本脚本设置完 key 验证后使用的都是执行主机的私钥和公钥,也就是每台主机之间都是互通的不需要密码就可以 ssh 连接
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于