应用场景
当想通过一个节点(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信任脚本)时,因为本地密钥已经生成,如果再选择生成的话,和以前的密钥就不配对了,所以选择不覆盖