Linux 基础key验证登录SSH
需要安装ssh安装包 1> ssh-keygen -t rsa -P "" -i /root/.ssh/id_rsa.pub (默认路径也是这个) 2> ssh-copy-id 10.0.0.* (第一次登录需要验证,后面登录不需要) 3> 多台主机自动化登录,编写脚本,用SSHPASS 命令传递第一次需要的用户密码 3.1> ssh-keygen是一样
#!/bin/bash # #************************************************************************************** #Author: Noise Lys #QQ: 578110218 #Date: 2021-05-27 #Filename: push_ssh_key.sh #URL: https://www.cnblogs.com/noise/ #Description: The test script #Copyright (C): 2021 All rights reserved #************************************************************************************** PASS=123456 #设置网段最后的地址,4-255之间,越小扫描越快 END=254 #挑选出当前IP IP=`ip a s eth0 | awk -F'[ /]+' 'NR==3{print $3}'` #挑选出当前IP的前3位 NET=${IP%.*}. #先删除原来的key和log file rm -f /root/.ssh/id_rsa [ -e ./SCANIP.log ] && rm -f SCANIP.log #循环ping当前IP所有的主机从10.0.0.3~10.0.0.254,ping成功将其IP存入log for((i=3;i<="$END";i++));do ping -c 1 -w 1 ${NET}$i &> /dev/null && echo "${NET}$i" >> SCANIP.log & done wait #生成key ssh-keygen -P "" -f /root/.ssh/id_rsa #查询是否存在包sshpass,用来传输密码 rpm -q sshpass || yum -y install sshpass #传输密码到IP sshpass -p $PASS ssh-copy-id -o StrictHostKeyChecking=no $IP #将log里面的所有IP存入变量,以便后续遍历传输密码和key AliveIP=(`cat SCANIP.log`) for n in ${AliveIP[*]};do sshpass -p $PASS scp -o StrictHostKeyChecking=no -r /root/.ssh root@${n}: done #把.ssh/known_hosts拷贝到所有主机,使它们第一次互相访问时不需要输入回车 for n in ${AliveIP[*]};do scp /root/.ssh/known_hosts ${n}:.ssh/ done