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解析功能,建议关闭
posted @ 2021-08-06 21:21  Cai_HL  阅读(192)  评论(0编辑  收藏  举报
>