无法通过Ansible ping通EC2实例问题求助
解决Ansible连接EC2实例失败的问题
核心问题定位
从报错信息能看出,Ansible尝试使用/home/vagrant/key.perm密钥文件建立SSH连接,但你实际下载的是key.pem,本质是密钥文件的路径/文件名不匹配,另外还要确认密钥文件权限是否符合SSH的安全要求。
具体修复步骤
- 核对
ansible.cfg配置:找到private_key_file配置项,确认其值是你实际的key.pem文件完整路径,比如文件在/home/vagrant/key.pem,配置就应该写成private_key_file = /home/vagrant/key.pem,别误写成key.perm。 - 修正密钥文件权限:SSH不允许私钥文件权限过于开放,执行以下命令调整权限:
chmod 600 /home/vagrant/key.pem - 手动测试SSH连通性:先跳过Ansible,用原生SSH命令验证基础连接是否正常:
这步能成功的话,再重新运行Ansible的ping命令。ssh -i /home/vagrant/key.pem ec2-user@44.256.222.13 - 检查hosts文件配置:如果你的hosts文件里为目标EC2实例单独设置了
ansible_ssh_private_key_file,这个配置优先级会高于ansible.cfg,要确保它指向的也是正确的key.pem路径。
内容的提问来源于stack exchange,提问作者Iannis
相关产品推荐
相关产品推荐

