gpt4 book ai didi

git 无法在 azure devops 管道中使用 ssh 克隆子模块

转载 作者:行者123 更新时间:2023-12-05 05:30:57 25 4
gpt4 key购买 nike

我正在尝试使用 Azure DevOps 管道。管道应该运行的主存储库被克隆得很好,除了我无法克隆它的子模块。子模块是使用 SSH URL 添加的,因为这是在我的计算机中设置的。

克隆过程失败:

Please make sure you have the correct access rights
and the repository exists.
fatal: clone of 'git@ssh.dev.azure.com:v3/<rest_of_link>' into submodule path '/home/vsts/work/1/s/Modules' failed
Failed to clone 'Modules' a second time, aborting

因此,由于我使用的是 SSH,因此我已经创建了一对 RSA key ,并且我正在使用 Azure 自己的任务来安装它,如下所示:

- task: InstallSSHKey@0
inputs:
knownHostsEntry: '<entry>'
sshPublicKey: '<public_key>'
sshKeySecureFile: 'id_rsa'

它成功了,输出如下:

/usr/bin/ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-XXXXXXFGcDdd/agent.1614; export SSH_AUTH_SOCK;
SSH_AGENT_PID=1615; export SSH_AGENT_PID;
echo Agent pid 1615;
/usr/bin/ssh-add -L
The agent has no identities.
/usr/bin/ssh-add /home/vsts/work/_temp/id_rsa
Identity added: /home/vsts/work/_temp/id_rsa (jose@42we-desktop)
/usr/bin/ssh-add
Finishing: InstallSSHKey

很好,对吧?除了如果我尝试用以下方法初始化子模块:

GIT_SSH_COMMAND="ssh -v" git submodule update --init --recursive

还是失败了。

通过查看通过使用 -v 标志提供的额外信息,我可以看到它最初接受 key ,甚至说 Authenticated to ssh.dev.azure.com,仅然后在 git-upload-pack

之后失败
debug1: Authentications that can continue: password,publickey
debug1: Next authentication method: publickey
debug1: Offering public key: <key> RSA SHA256 <key> agent
debug1: Server accepts key: <key> RSA SHA256 <key> agent
Authenticated to ssh.dev.azure.com ([20.125.155.0]:22) using "publickey".
debug1: channel 0: new [client-session]
debug1: Entering interactive session.
debug1: pledge: filesystem
debug1: Sending environment.
debug1: channel 0: setting env GIT_PROTOCOL = "version=2"
debug1: channel 0: setting env LANG = "C.UTF-8"
debug1: Sending command: git-upload-pack 'v3/name/project/repo'
remote: Public key authentication failed.
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: channel 0: free: client-session, nchannels 1
Transferred: sent 3592, received 2304 bytes, in 2.1 seconds
Bytes per second: sent 1725.1, received 1106.5
debug1: Exit status 2
fatal: Could not read from remote repository.

为什么会失败??这在我的脑海中真的没有意义,如果我在我的计算机(运行 Fedora)中克隆,我可以看到的输出是相同的,直到“git-upload-pack”。

已解决 已解决 已解决 已解决

原来我还需要将生成的 SSH key 添加到我的帐户中。一开始我认为这没有意义,因为身份验证应该在 Azure 机器本身之间进行……无论哪种方式。大功告成!

最佳答案

原来我还需要将生成的 SSH key 添加到我的帐户中。一开始我认为这没有意义,因为身份验证应该在 Azure 机器本身之间进行……无论哪种方式。大功告成!

生成 key 对后,将私钥添加到 Azure 的库并将公钥添加到 YAML 脚本,您还需要将公钥添加到您自己的 azure devops 配置文件中的个人访问 key 。

关于git 无法在 azure devops 管道中使用 ssh 克隆子模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74495971/

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