SSH密钥批量配置免密登录多服务器集群完整教程

为什么需要批量免密登录

管理多台服务器时,每次输入密码既慢又容易出错。
配置 SSH 密钥后,你可以用一条命令同时操作整个集群,适合定时脚本、自动化部署或日常巡检。
本文假设你已有一台本地机器(控制端)和若干台远程 Linux 服务器,所有机器都支持 SSH 协议。

第一步:生成密钥对

在控制端打开终端,执行以下命令生成 RSA 4096 位密钥对(注意不要设置密码):

ssh-keygen -t rsa -b 4096 -N "" -f ~/.ssh/id_rsa

执行后会在 ~/.ssh/ 下生成两个文件:id_rsa(私钥)和 id_rsa.pub(公钥)。
私钥必须妥善保管,公钥则需要分发到每台远程服务器。

第二步:批量分发公钥

新建一个文本文件 server_list.txt,每行写入远程服务器的 IP 地址或域名,例如:

192.168.1.10
192.168.1.11
192.168.1.12

然后运行以下脚本批量使用 ssh-copy-id 将公钥添加进去(记得替换 username 为你的远程用户名):

while IFS= read -r ip; do
    ssh-copy-id -i ~/.ssh/id_rsa.pub username@$ip
done < server_list.txt

首次连接时会被询问是否接受主机密钥,
你可以先手动执行一次 ssh -o StrictHostKeyChecking=no username@目标IP 把已知主机记录写入 ~/.ssh/known_hosts
或者直接给 ssh-copy-id 加上 -o StrictHostKeyChecking=accept-new 参数(OpenSSH 7.6 以上支持)。

如果服务器没有 ssh-copy-id 命令,可用以下命令手动添加:

cat ~/.ssh/id_rsa.pub | ssh username@$ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

避坑指南

  • 文件权限:远程服务器上的 ~/.ssh 目录权限必须是 700,authorized_keys 文件权限必须是 600,否则 SSH 会拒绝密钥验证。可通过 chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys 修复。
  • known_hosts 冲突:如果之前用密码登录过该服务器,再次连接时可能提示主机密钥不匹配。可以手动删除 ~/.ssh/known_hosts 中对应 IP 的行,或使用 ssh-keygen -R 目标IP 清除。
  • 批量脚本中断:循环中如果某台机器连接失败会导致后续机器中断,建议在循环内加上 || echo "$ip failed" 跳过错误继续执行:
while IFS= read -r ip; do
    ssh-copy-id -i ~/.ssh/id_rsa.pub username@$ip || echo "$ip failed"
done < server_list.txt

验证效果与常见问题

验证方式:在控制端执行 ssh username@目标IP,如果无需密码直接登录即表示配置成功。
如果要一次性验证所有服务器,可以用如下命令:

for ip in $(cat server_list.txt); do
    ssh -o BatchMode=yes -o ConnectTimeout=5 username@$ip "echo $ip OK" || echo "$ip FAILED"
done

常见问题解答

  • 问:为什么我执行 ssh-copy-id 后还是提示输入密码? 答:检查远程服务器的 ~/.ssh/authorized_keys 是否有公钥内容,以及权限是否正确。
  • 问:公钥已经添加,但登录依然要求密码? 答:检查 /etc/ssh/sshd_config 中的 PubkeyAuthentication yes 是否被注释,以及 AuthorizedKeysFile 路径是否指向 .ssh/authorized_keys
  • 问:如何避免首次连接的手动确认? 答:在 ~/.ssh/config 中添加如下全局配置:
Host *
    StrictHostKeyChecking accept-new

如果你正在处理 SSH 密钥批量配置免密登录多服务器集群,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。

分享到:
上一篇
多网卡绑定链路聚合提升出口带宽上限实操指南
下一篇
定时自动清理MySQL慢查询日志释放磁盘
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意