gpt4 book ai didi

git - Ansible git clone 'Permission Denied' 但直接 git clone 工作

转载 作者:IT王子 更新时间:2023-10-29 01:27:41 27 4
gpt4 key购买 nike

我在使用 Ansible 时遇到了一个麻烦的问题。我使用当前主机的 ssh key 在我的环境中设置了一个 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/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 上 vagrant ssh 并执行 git pull repo 它会起作用。但是当我执行 vagrant provision 时,我收到以下错误消息:

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 provision 使用,但我无法检测到原因。

您是否已经看到此类问题?

谢谢。

编辑:ansible 似乎没有执行 git clone,而是尝试执行以下命令:

/usr/bin/git ls-remote ssh://repo.git -h refs/heads/HEAD

我在我的 vagrant box 中试过了,我有同样的权限被拒绝的问题。

最佳答案

复制私钥恕我直言从来都不是一个好主意。更好的选择是启用 ssh agent forwarding .

您可以在本地 .ssh/config 中全局执行此操作:

ForwardAgent yes

或者在你的ansible.cfg中:

[ssh_connection]
ssh_args= -A

无论如何,您需要确保主机/虚拟机接受代理转发。在远程 /etc/ssh/sshd_config 中,必须定义:

AllowAgentForwarding yes

关于git - Ansible git clone 'Permission Denied' 但直接 git clone 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30761615/

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