使用Ansible管理AWS两台服务器时无法连接目标服务器的问题
问题解决思路
1. 先修正SSH命令的拼写错误
你执行的命令里密钥文件名拼写有误:privae-key 应该是 private-key,修正后重新尝试:
ssh -i private-key ubuntu@public-id-target-server
2. 检查密钥文件权限
SSH对密钥文件权限要求严格,权限过宽会直接拒绝连接,执行以下命令修正权限:
chmod 600 private-key
确保密钥文件仅当前用户可读可写,避免权限冲突。
3. 排查AWS安全组规则
- 确认目标服务器的安全组已添加允许控制服务器公IP(或临时用0.0.0.0/0测试)的22端口入站规则,即使Ansible之前能正常执行,也可能安全组规则被后续修改。
- 同时检查控制服务器的安全组是否允许出站访问目标服务器的22端口。
4. 查看SSH连接详细日志定位问题
添加-vv参数开启调试日志,能明确看到连接失败的具体原因(比如密钥不匹配、服务器拒绝、网络不通等):
ssh -vv -i private-key ubuntu@public-id-target-server
5. 无需SSH登录,直接用Ansible验证文件状态
既然Ansible能成功执行任务,直接通过Ansible命令查看目标服务器上的文件状态,绕开SSH登录问题:
- 查看文件是否存在:
ansible target-server -m stat -a "path=/你创建文件的路径/文件名" -i 你的inventory文件路径
- 列出目标路径下的文件:
ansible target-server -m shell -a "ls /你创建文件的路径" -i 你的inventory文件路径
内容的提问来源于stack exchange,提问作者Sanketpandit4893
相关产品推荐
相关产品推荐

