我在论坛上看到过很多类似的问题,但是没有一个答案能帮到我。
我正在尝试运行ansible playbook,在我的Debian PC上这个操作很顺利。现在我已经转移到Ubuntu 16.04上,却无法正常工作。我遇到了public key错误的权限被拒绝的问题。
我猜测这是因为我在运行sudo ansible-playbook。这会尝试使用来自我的root用户的公钥,而这些公钥不在我正在尝试ansible的服务器上。
那么,我怎样才能以sudo身份运行ansible playbook,但同时又使用我当前用户的ssh密钥呢?
如果我以sudo身份运行,我会得到:
我正在尝试运行ansible playbook,在我的Debian PC上这个操作很顺利。现在我已经转移到Ubuntu 16.04上,却无法正常工作。我遇到了public key错误的权限被拒绝的问题。
我猜测这是因为我在运行sudo ansible-playbook。这会尝试使用来自我的root用户的公钥,而这些公钥不在我正在尝试ansible的服务器上。
那么,我怎样才能以sudo身份运行ansible playbook,但同时又使用我当前用户的ssh密钥呢?
如果我以sudo身份运行,我会得到:
fatal: [10.11.8.1]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: Permission denied (publickey).\r\n", "unreachable": true}
如果我不以sudo身份运行,会出现以下错误:
fatal: [10.11.8.1]: FAILED! => {"failed": true, "msg": "Cannot write to ControlPath /home/chrisl/.ansible/cp"}
[警告]: 无法创建重试文件'/home/chrisl/ansible/keys.retry'。[Errno 13] 权限被拒绝:u'/home/chrisl/ansible/keys.retry'
我也尝试过这个方法,你可以看到发生了什么...