Ansible git克隆';拒绝许可';但是直接git克隆可以工作
我和Ansible有个麻烦的问题。我使用当前主机的ssh密钥在我的环境中设置git克隆:Ansible git克隆';拒绝许可';但是直接git克隆可以工作,git,ansible,Git,Ansible,我和Ansible有个麻烦的问题。我使用当前主机的ssh密钥在我的环境中设置git克隆: - name: Add user Public Key copy: src: "/Users/alexgrs/.ssh/id_rsa.pub" dest: "/home/vagrant/.ssh/id_rsa.pub" mode: 0644 - name: Add user Private Key copy: src: "/Users/alexg
- name: Add user Public Key
copy:
src: "/Users/alexgrs/.ssh/id_rsa.pub"
dest: "/home/vagrant/.ssh/id_rsa.pub"
mode: 0644
- name: Add user Private Key
copy:
src: "/Users/alexgrs/.ssh/id_rsa"
dest: "/home/vagrant/.ssh/id_rsa"
mode: 0600
- name: Clone Repository
git:
repo: repo.git
dest: /home/vagrant/workspace/
update: true
accept_hostkey: true
key_file: "/home/vagrant/.ssh/id_rsa.pub"
如果我vagrant ssh
在vagrant上执行git pull repo
它就可以工作。但是当我做了一个流浪规定时,我得到了以下错误信息:
stderr: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.
我很确定我的公钥没有被vangrant条款使用,但我不知道为什么
你已经看到这种问题了吗
多谢各位
编辑:
ansible似乎没有进行git克隆,但正在尝试以下命令:
/usr/bin/git ls remotessh://repo.git -h参考/头部/头部
我在我的vagrant box中尝试了它,我也遇到了同样的权限被拒绝的问题。在密钥文件选项中,当您应该使用私钥时,您正在使用公钥
来源:复制私钥从来都不是一个好主意。更好的选择是启用 您可以在本地
.ssh/config
中全局执行此操作:
ForwardAgent yes
或者在您的ansible.cfg
中:
[ssh_connection]
ssh_args= -A
但在任何情况下,您都需要确保主机/vm接受代理转发。在远程/etc/ssh/sshd_config
中,必须定义:
AllowAgentForwarding yes
结帐
它解释了repo.git
ssh克隆url应该是(url语法):
或(SCP语法):
也检查您的
密钥文件。我尝试了私钥,但它不起作用。我用新发现编辑了我的问题。您使用的是什么版本的Ansible?您可能遇到了问题和中提到的相同问题(SSH代理转发)。如果您使用的是Vagrant~1.4.x(比如Ubuntu14.04 repos中的软件包),那么您可能会通过将Ansible和Vagrant更新到1.7.x版本而得到一些缓解。(一个Ruby库依赖项似乎是。)从vagrantup.com更新到最新的Vagrant.deb包为我解决了这个问题。似乎您正在尝试用公钥克隆存储库:key\u文件:“/home/Vagrant/.ssh/id\u rsa.pub”
。它应该是您的私钥。请注意,AllowAgentForwarding通常默认为“是”,但最好检查它是否因某种原因被禁用。
ssh://git@bitbucket.org/my_user/my_repo.git
git@bitbucket.org:my_user/my_repo.git