Linux公钥实现主机间免密登录及文件互传

实现方法

1.假设互信主机在下面

A 10.93.131.1
B 10.93.131.2
C 10.93.131.3
D 10.93.131.4
E 10.93.131.5
F 10.93.131.6
G 10.93.131.7

2.选取10.93.131.1主机,在/usr/local/src下创建两个文件

cat >>/usr/local/src/servers <<EOF
10.93.131.1  主机密码
10.93.131.2  主机密码
10.93.131.3  主机密码
10.93.131.4  主机密码
10.93.131.5  主机密码
10.93.131.6  主机密码
10.93.131.7  主机密码
EOF

cat >> /usr/local/src/setRootUserPublicKey.sh <<EOF
#!/bin/bash
if [ "$UID" -ne "0" ];then
echo please use ROOT;
exit
fi
function MAKE_PK
{
        count=`tac servers | wc -l`
        while [ "$count" -ne "0" ];do
        IP=`head -$count servers|tail -1|awk '{print $1}'`
        PASSWD=`head -$count servers|tail -1|awk '{print $2}'`
        set -x
        sshpass -p $PASSWD ssh -o StrictHostKeyChecking=no root@$IP 'mkdir -p /root/.ssh;chmod 700 /root/.ssh'
        sshpass -p $PASSWD ssh -o StrictHostKeyChecking=no root@$IP "ssh-keygen -t rsa -P '' -f /root/.ssh/id_rsa"
        sshpass -p $PASSWD ssh -o StrictHostKeyChecking=no root@$IP cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
        set +x
        let count--
        done
        chmod 644 /root/.ssh/authorized_keys
}
function LOCAL_PK
{
        #mk PK of localhost
        cat /root/.ssh/authorized_keys > /tmp/authorized_keys
        ssh-keygen -t rsa -P '' -f /root/.ssh/id_rsa
        cat /root/.ssh/id_rsa.pub >> /tmp/authorized_keys

}
function HANDOUT_PK
{
        count=`tac ../servers | wc -l`
        while [ "$count" -ne "0" ];do
        IP=`head -$count servers|tail -1|awk '{print $1}'`
        PASSWD=`head -$count servers|tail -1|awk '{print $2}'`
        set -x
        sshpass -p $PASSWD ssh -o StrictHostKeyChecking=no root@$IP 'cat >>~/.ssh/authorized_keys' < /tmp/authorized_keys
        set +x
        let count--
        done


}
MAKE_PK
LOCAL_PK
HANDOUT_PK

EOF

3.安装sshpass

[下载地址](https://sourceforge.net/projects/sshpass)

4.执行以下命令进行免密设置

cd /usr/local/src
sh setRootUserPublicKey.sh
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值