#!/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 连接
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于