我在使用ssh转发克隆来自Git的回购时遇到问题。这是我的设置:
- name: Setup/pull the Git repo
git: repo={{ git_repo }} dest={{ git_root }} update=yes accept_hostkey=yes
when: setup_git_repo
tags: git deploy
#git_repo = git@github.com:my_name/repo.git
我从-vvvv
获得此调试<x.x.x.x> ESTABLISH CONNECTION FOR USER: ubuntu
<x.x.x.x> REMOTE_MODULE git repo=git@github.com:name/repo.git dest=/webapps/example-app/example update=yes accept_hostkey=yes
<x.x.x.x> EXEC ['ssh', '-C', '-tt', '-vvv', '-o', 'ForwardAgent=yes', '-o', u'IdentityFile="/Library/keys/aws-key.pem"', '-o', 'KbdInteractiveAuthentication=no', '-o', 'PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey', '-o', 'PasswordAuthentication=no', '-o', 'User=ubuntu', '-o', 'ConnectTimeout=10', 'x.x.x.x', "/bin/sh -c 'mkdir -p $HOME/.ansible/tmp/ansible-tmp-1403001910.72-137077614801868 && chmod a+rx $HOME/.ansible/tmp/ansible-tmp-1403001910.72-137077614801868 && echo $HOME/.ansible/tmp/ansible-tmp-1403001910.72-137077614801868'"]
我可以看到身份文件不是我想要使用的id,我的git键位于我运行Ansible的机器上的〜/ .ssh /。我如何告诉它使用正确的密钥或为什么不尝试其他密钥而不是只悬挂?
我运行Ansible并将'private_key_file'设置为aws键。也许这就是问题?
通过使用git模块的key_file变量并将我的git私钥上传到我正在配置的服务器,我可以看到这是如何实现的。我不想这样做,我想从我的localhost转发ssh。
有可能吗?有人可以帮忙吗?
答案 0 :(得分:1)
好的,我终于解决了这个问题。
首先检查ssh代理转发是否在没有Ansible的情况下工作。这个列表是一个非常好的资源 - https://help.github.com/articles/using-ssh-agent-forwarding。
之后,我只是将它添加到anisble.cfg中,一切都按预期工作。
sudo_flags=-HE