.给 192.168.200.0/24网段批量发送公钥,书写脚本,并且校验是否分发成功
时间: 2024-03-10 22:45:30 浏览: 151
好的,以下是批量发送公钥的脚本:
```bash
#!/bin/bash
# 定义公钥文件路径
PUBLIC_KEY_FILE="/path/to/public_key.pub"
# 定义远程主机的用户名和密码
REMOTE_USER="username"
REMOTE_PASSWORD="password"
# 循环遍历网段中的所有IP地址
for IP in $(seq 1 254 | sed 's/^/192.168.200./'); do
# 尝试连接远程主机
sshpass -p "$REMOTE_PASSWORD" ssh -o StrictHostKeyChecking=no "$REMOTE_USER"@"$IP" "exit" >/dev/null 2>&1
# 判断是否连接成功,成功则发送公钥
if [ $? -eq 0 ]; then
echo "连接 $IP 成功,正在发送公钥..."
sshpass -p "$REMOTE_PASSWORD" ssh-copy-id -i "$PUBLIC_KEY_FILE" "$REMOTE_USER"@"$IP" >/dev/null 2>&1
if [ $? -eq 0 ]; then
echo "公钥发送成功!"
else
echo "公钥发送失败!"
fi
else
echo "连接 $IP 失败!"
fi
done
```
您只需要将脚本中的PUBLIC_KEY_FILE、REMOTE_USER和REMOTE_PASSWORD替换成您自己的即可。
执行脚本后,会尝试连接网段中的所有IP地址,如果连接成功,则发送公钥到远程主机,并打印出发送结果。如果连接失败,则打印连接失败的信息。
您可以使用以下命令来执行脚本:
```bash
bash send-public-key.sh
```
执行完毕后,可以登录到远程主机查看authorized_keys文件是否已经包含了公钥,以验证公钥是否分发成功。
阅读全文
相关推荐








