gpt4 book ai didi

git - ansible git clone 权限被拒绝问题

转载 作者:太空狗 更新时间:2023-10-29 14:18:28 27 4
gpt4 key购买 nike

我正在尝试使用 ansible 和 vagrant 设置开发环境。现在我无法从 bitbucket 克隆一个 git repo。

下面是 Vagrantfile 和 ansible 设置以及我尝试过的东西。

在我的 Vagrantfile 中我有 config.ssh.forward_agent = true

在我的 deploy.yml 中有

- name: ensure bitbucket is a known host
lineinfile:
dest: /home/vagrant/.ssh/known_hosts
create: yes
state: present
line: "{{ lookup('pipe', 'ssh-keyscan -p 443 -t rsa altssh.bitbucket.org') }}"
regexp: "^altssh\\.bitbucket\\.org"
sudo_user: "vagrant"
tags: known_hosts

- name: checkout opentest repo
git: >
dest="/home/vagrant/ot/"
repo="ssh://git@altssh.bitbucket.org:443/muhammadammar/opentest/"
version="master"
accept_hostkey=yes
sudo_user: "vagrant"
tags: checkout

上面的第一个任务是将 bitbucket 的公钥添加到 /home/vagrant/.ssh/known_hosts

下面是 ansible 尝试 check out repo 时的输出

<127.0.0.1> ESTABLISH CONNECTION FOR USER: vagrant
<127.0.0.1> REMOTE_MODULE git dest="/home/vagrant/ot/" repo="ssh:********@altssh.bitbucket.org:443/muhammadammar/opentest/" version=master accept_hostkey=yes
<127.0.0.1> EXEC ssh -C -vvv -o ForwardAgent=yes -o ControlMaster=auto -o ControlPersist=60s -o ControlPath="/Users/ammar/.ansible/cp/%h-%r" -o StrictHostKeyChecking=no -o Port=2222 -o IdentityFile="/Users/ammar/.vagrant.d/insecure_private_key" -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=vagrant -o ConnectTimeout=10 127.0.0.1 /bin/sh -c 'sudo -k && sudo -HE -S -p "[sudo via ansible, key=vwkfotuvzzmllxvxptkgehjzdlqygoez] password: " -u vagrant /bin/sh -c '"'"'echo BECOME-SUCCESS-vwkfotuvzzmllxvxptkgehjzdlqygoez; LANG=C LC_CTYPE=C /usr/bin/python'"'"''
failed: [default] => {"cmd": "/usr/bin/git ls-remote 'ssh:********@altssh.bitbucket.org:443/muhammadammar/opentest/' -h refs/heads/master", "failed": true, "rc": 128}
stderr: RSA host key for IP address '131.103.20.174' not in list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

msg: RSA host key for IP address '131.103.20.174' not in list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

FATAL: all hosts have already failed -- aborting

to retry, use: --limit @/Users/ammar/dev.retry

default : ok=1 changed=0 unreachable=0 failed=1

Ansible failed to complete successfully. Any error output should be
visible above. Please fix these errors and try again.

在我的主机上,我已将我的私钥添加到 ssh 身份验证代理。我可以在主机和 vagrant box 上使用 ssh-add -l 查看私钥身份。

在 vagrant box 中,我可以使用 git clone ssh://git@altssh.bitbucket.org:443/muhammadammar/opentest ot 成功克隆 repo

我不确定是什么问题。任何人都可以帮助解决这个问题。

编辑

即使是下面的也不能在 ansible 中工作

shell: "git clone ssh://git@altssh.bitbucket.org:443/muhammadammar/opentest/ /home/vagrant/omp/"

最佳答案

能够在 vagrant box 上成功运行 git clone ... 是不够的。

在我看来,发生的事情是:

  • ansible 尝试以用户“vagrant”(User=vagrant) 打开到 vagrant box 的 ssh 连接并提供身份文件:-o IdentityFile="/Users/ammar/。 vagrant.d/insecure_private_key"
  • 执行 /bin/sh -c 'sudo -k && sudo -HE -S -p "[sudo via ansible, key=vwkfotuvzzmllxvxptkgehjzdlqygoez] password: "-u vagrant/bin/sh -c '"' “'echo 成为成功-vwkfotuvzzmllxvxptkgehjzdlqygoez; LANG=C LC_CTYPE=C/usr/bin/python'"'"'
  • 尝试使用用户 '********' (ssh:*********@altssh.bitbucket.org:443/. ..)

您应该也能做到,是吗?

如果不是,那么原因可能有很多,例如

  • /Users/ammar/.vagrant.d/insecure_private_key 不是用户 vagrant 的正确文件。
  • vagrant 不是 sudoer。
  • vagrant@vagrant 用户的 key 未在 ********@altssh.bitbucket.org
  • 注册

查看上述所有步骤的日志/输出后,您就会知道正确的原因。

PS:当您已经使用同一用户执行 ssh 时,使用 sudo_user: vagrant 似乎是多余的。我能想到一些人可能会这样做的原因,但至少在这里它是多余的。

关于git - ansible git clone 权限被拒绝问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32821569/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com