簡體   English   中英

git 無法在 azure devops 管道中使用 ssh 克隆子模塊

[英]git fails to clone submodule with ssh in azure devops pipeline

我正在嘗試使用 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 密鑰,並且我正在使用 Azure 自己的任務來安裝它,如下所示:

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

它通過以下 output 成功:

/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 標志提供的額外信息,我可以看到它最初接受密鑰,甚至說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)中克隆的 output 是相同的,直到“git-upload-pack”。

解決了 解決了 解決了解決了

原來我還需要將生成的 SSH 密鑰添加到我的帳戶中。 一開始我認為這沒有意義,因為身份驗證應該在 azure 機器本身之間進行……無論哪種方式。 它已經完成並且有效!

原來我還需要將生成的 SSH 密鑰添加到我的帳戶中。 一開始我認為這沒有意義,因為身份驗證應該在 azure 機器本身之間進行……無論哪種方式。 它已經完成並且有效!

生成密鑰對后,將私鑰添加到 Azure 庫,將公鑰添加到 YAML 腳本,您還需要將公鑰添加到 azure devops 配置文件中您自己的個人訪問密鑰。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM