0%

一键更换SSH密码

之前,在vSphere上搭建Kubernetes集群,所有的节点都是通过一个CentOS模板克隆出来的。也就是所有的节点的密码都是一样的,但是这样是不咋安全的,因此尝试着去关闭使用密码登录。

下面是我的脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/bash -e

cd $(dirname $0)/..

IPS=("192.168.0.120" "192.168.0.238" "192.168.0.134" "192.168.0.122" "192.168.0.162" "192.168.0.159")

for ip in $IPS[*];
do
ssh-keygen -f "ssh/id_rsa_${ip}" -t rsa -N ''
sshpass -e ssh-copy-id -o "StrictHostKeyChecking no" -i "ssh/id_rsa_${ip}" root@$ip -f
ssh -i ssh/id_rsa root@$ip <<'ENDSSH'
sed -i 's/^PasswordAuthentication\s*yes$/PasswordAuthentication no/g' /etc/ssh/sshd_config
service sshd restart
ENDSSH
done

在使用这个脚本之前,需要自己安装一下sshpass, 并 export SSHPASS=YOUR_PASSWAORD