Ansible无法连接本地主机 SSH免密配置后执行ping命令报错
问题核心原因
你的Ansible hosts配置中ansible_ssh_private_key_file参数指定的文件路径错误:
/home/timur/.ssh/authorized_keys是存储授权访问本机的公钥列表的文件,不是SSH私钥文件。- 你执行
ssh-keygen -t rsa生成的私钥默认存储路径为/home/timur/.ssh/id_rsa,这个才是需要填写到该参数的文件路径。
修复方案
修改hosts配置文件对应行即可:
[staging_servers] linux_local ansible_host=127.0.0.1 ansible_connection=ssh ansible_user=timur ansible_ssh_private_key_file=/home/timur/.ssh/id_rsa
如果你的本地SSH默认就使用id_rsa密钥做身份认证,也可以直接省略ansible_ssh_private_key_file参数,Ansible会自动调用SSH默认配置读取密钥。
可选校验项
确认本地私钥文件权限正确,否则SSH会因安全规则拒绝读取:
chmod 600 ~/.ssh/id_rsa
修改完成后重新执行ansible all -m ping即可正常返回pong响应。
内容的提问来源于stack exchange,提问作者Excentricitet
相关产品推荐
相关产品推荐

