通过ssh信任实现无密登录(脚本实现)

应用场景

当想通过一个节点(eg:一台Linux系统的pc),批量控制多个节点,实现批量操作时,ssh 信任是一个好的解决办法。例如博主通过一个主节点,执行ssh信任批量脚本后,可以实现以后批量无密控制操作几十到上百个子节点。

 

#!/bin/bash
##默认创建rsa密钥对在root的用户目录下
if [ "$1" != "hostip" ];then
echo please add hostip arguments file....Run again!!
exit 1
fi

dir=`pwd`
if [ ! -f ${dir}/hostip ];then
echo user file argument not exit....
exit 1
fi

user_name=`whoami`
echo $user_name.......
if [ $user_name != "root" ];then
echo please swith rootUser....
exit 1
fi
#进入root用户目录 
cd ~
ssh-keygen -t rsa
echo "ssh-rsa secretKes created......"

for host in `cat ${dir}/hostip`
do
        cd ~/.ssh
        scp id_rsa.pub root@$host:/root
        ssh -p 22 root@$host "if [ ! -d "/root/.ssh" ];then mkdir /root/.ssh;fi;cd ~;cat id_rsa.pub >> ~/.ssh/authorized_keys"
done

 

使用方法

选定一个主节点(控制节点),将使用的脚本和参数文件放到主节点的同一个目录下,参数文件内容是要控制的子节点的主机IP。

eg:hostip 参数文件内容如下

192.178.3.3
192.178.3.4
192.178.3.5
192.178.3.6
192.178.3.9
192.178.3.10
192.178.3.11
192.178.3.12
192.178.3.13
192.178.3.15
192.178.3.16
192.178.3.17
192.178.3.19
192.178.3.20
192.178.3.2

使用方式 ./ssh_believe.sh hostip

Warning:如果要分批次去执行ssh_believe.sh(ssh信任脚本)时,因为本地密钥已经生成,如果再选择生成的话,和以前的密钥就不配对了,所以选择不覆盖

 

posted on 2018-08-02 09:44  幻化~大追风  阅读(374)  评论(0编辑  收藏  举报