title: SSH Agent Forwarding with Ansible
body: <p>I’m using Ansible 1.5.3 and Git with ssh agent forwarding (<a href="https://help.github.com/articles/using-ssh-agent-forwarding">https://help.github.com/articles/using-ssh-agent-forwarding</a>).  I can log into the server that I am managing with Ansible and test that my connection to git is correctly configured:</p>
  
  <pre><code>ubuntu@test:~$ ssh -T git@github.com
  Hi gituser! You've successfully authenticated, but GitHub does not provide shell access.
  </code></pre>
  
  <p>I can also clone and update one of my repos using this account so my git configuration looks good and uses ssh forwarding when I log into my server directly via ssh.</p>
  
  <p>The problem:  When I attempt the same test shown above using the Ansible command module. It fails with “Permission denied”.  Part of the Ansible output (with verbose logging) looks like this:</p>
  
  <pre><code>failed: [xxx.xxxxx.com] =&gt; {"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).
  </code></pre>
  
  <p>Here is the simple playbook that runs this command:</p>
  
  <pre><code>- hosts: webservers
    sudo: yes
    remote_user: ubuntu
  
    tasks:
  
    - name: Test that git ssh connection is working.
      command: ssh -T git@github.com
  </code></pre>
  
  <p>The question:  why does everything work correctly when I manually log in via ssh and run the command but fail when the same command is run as the same user via Ansible?</p>
  
  <p>I will post the answer shortly if no one else beats me to it.  Although I am using git to demonstrate the problem, it could occur with any module that depends on ssh agent forwarding.  It is not specific to Ansible but I suspect many will first encounter the problem in this scenario.</p>