批量分发SSH公钥实现免密登录的核心是安全可靠地将控制机公钥写入多台目标服务器的~/.ssh/authorized_keys文件,关键在于确保权限、路径、用户身份和网络连通性准确无误。
批量分发SSH公钥实现免密登录,核心是把控制机的公钥一次性、安全地写入多台目标服务器的 ~/.ssh/authorized_keys 文件中。关键不在于“能不能”,而在于“怎么确保每一步都可靠执行”——尤其在权限、路径、用户身份和网络连通性上容易出错。
在你发起操作的那台机器(控制机)上生成专用密钥,避免混用已有密钥:
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_batch -N "" 生成无密码短语的密钥对,更安全高效id_ed25519_batch 必须严格保护(chmod 600),公钥 id_ed25519_batch.pub 才用于分发id_rsa,便于后续定位和轮换适合几十台以内、目标服务器用户名和密码统一的场景:
servers.txt,每行一个地址while read ip; do ssh-copy-id -i ~/.ssh/id_ed25519_batch.pub user@$ip; done < servers.txt
无需密码、支持幂等、可审计、易扩展:
hosts.ini)定义主机组:[prod]
web1 ansible_host=192.168.1.10
web2 ansible_host=192.168.1.11
deploy_key.yml)确保目录权限并写入公钥:使用 file 模块创建 /home/user/.ssh(权限 0700)
使用 authorized_key 模块部署公钥,指定 user: user 和本地公钥路径
ansible-playbook -i hosts.ini deploy_key.yml
分发完成后别跳过验证,常见失败点集中在以下环节:
.ssh 目录权限过宽(如 755),SSH 会拒绝读取 authorized_keys;应为 700(目录)和 600(文件)ssh-copy-id 或 cat id_rsa.pub | ssh user@host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
ssh -v user@host 查看详细日志《GTA6》发布后,GTA Online 将“继续留在市场中”
《红色沙漠》更新上线:新增幼龙宠物,并可禁言不法之徒
《刺客信条4:黑旗 记忆重置》不仅仅是重制版,更是续作
小米路由器upnp怎么开启(小米路由器upnp开启方法)
据报道,在《宿星的女朋友2 ―destiny star girlfriend―》最终更新后,Bungie正面临大规模裁员
宝可梦传说:阿尔宙斯粉丝因被拒绝授予“教授”头衔起诉任天堂