SSH免交互式分发秘钥
#!/bin/bash
for ip in 31 41 7 8 9
do
ssh-coyp-id -i /root/.ssh/id_rsa_pub root@172.16.1.$ip
done
问题:有交互过程
01:需要有确认yes或no
02:需要输入密码信息
03:服务端端口号变化了,如何和分发公钥
一、安装软件
yum -y install sshpass
二、执行免交互方式分发公钥命令
sshpass -p123456 ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.16.1.41
如何和不需要输入连接yes或no的确认信息
ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.16.1.41 "-o StrictHostKeyChecking=no "
服务端口号发生变化,如何批量进行分发公钥
sshpass -p555 ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.16.1.41 "-o StrictHostKeyChecking=no"
分发公钥脚本:
#!/bin/bash
for ip in `cat ip.txt`
do
echo "=========host $ip pub-key is start=========="
sshpass -pqweasd ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.16.1.$ip "-o StrictHostKeyChecking=no " &> /dev/null
if [ $? -eq 0 ];then
echo "host $ip is successed"
fi
echo "=========host $ip pub-key is end==========="
done
分发公钥检查脚本:
#!/bin/bash
CMD=$1
for ip in `cat ip.txt`
do
echo "=========== host $ip check"
ssh $ip $CMD
echo ""
done
SSH配置文件:
/etc/ssh/sshd _config
Port 22 -- 服务端口信息
ListenAddress 0.0.0.0 -- 监听地址,指定一块网卡能够接受远程访问请求
PS:指定监听的地址只能是本地网卡上有的ip
PermitEmptyPasswords -- 是佛允许远程用户使用空密码登录,默认不允许
PermitRootLogin yes -- 不允许root远程用户直接连接主机,建议改为no
GSSAPIAuthentication no -- 是否开机开启GSSAPI认证功能,不用的时候关闭
UseDNS no -- 是否开机反向DNS解析功能,建议关闭