ubuntu@test:~$ ssh -T git@github.com
Hi gituser! You've successfully authenticated, but GitHub does not provide shell access.
我也可以使用这个帐户克隆和更新我的一个存储库,以便我的git配置看起来不错,并且在直接通过ssh登录到我的服务器时使用ssh转发。
问题:当我尝试使用Ansible命令模块进行上述相同的测试时,它会失败并显示“权限被拒绝”。部分Ansible输出(带有详细日志记录)如下所示:
failed: [xxx.xxxxx.com] => {"changed": true, "cmd": ["ssh", "-T", "git@github.com"], "delta": "0:00:00.585481", "end": "2014-06-09 14:11:37.410907", "rc": 255, "start": "2014-06-09 14:11:36.825426"}
stderr: Permission denied (publickey).
这是一个简单的playbook,用于运行此命令:
- hosts: webservers
sudo: yes
remote_user: ubuntu
tasks:
- name: Test that git ssh connection is working.
command: ssh -T git@github.com
问题:为什么我手动通过ssh登录并运行命令时一切正常,但当使用Ansible以同一用户身份运行相同命令时会失败?
如果没有其他人比我更快地回答,我很快就会发布答案。虽然我使用git来演示问题,但它可能发生在任何依赖于ssh代理转发的模块上。它不是特定于Ansible,但我怀疑许多人将首先在此场景中遇到此问题。
sudo: no
。 - Daniel Da Cunha