无法通过 SSH 克隆 Azure DevOps 存储库,需要密码

All*_*lan 5 git ssh ubuntu visual-studio-code azure-devops

我很难尝试通过 SSH 将 Azure DevOps 私有存储库克隆到运行 Ubuntu (18.04) 的本地计算机。

按照此 Microsoft 文档,我使用ssh-keygen并提供密码短语创建了 SSH 密钥,在“用户设置”>“安全性”>“SSH 公钥”下将公钥添加到 Azure DevOps ,并在终端中使用 Azure 的“克隆存储库git clone git@ssh.dev.azure.com:v3/<organization-name>/<repo-name>”选项中提供的 url运行开发运营。

它返回 RSA 密钥指纹,要求确认并警告我它将将该主机永久添加到已知主机列表中。出现提示要求输入密码才能访问本地私钥,正确输入密码后,终端输出以下内容,要求输入密码:sign_and_send_pubkey: signing failed: agent refused operation git@ssh.dev.azure.com's password:

我尝试了创建 SSH 密钥时使用的密码,尝试了我的 Azure DevOps 帐户的密码,甚至我的 Ubuntu 的用户密码,但都不起作用。结果是:git@ssh.dev.azure.com: Permission denied (password,publickey). fatal: Could not read from remote repository.

文档中没有提供进一步的信息,我找不到任何解决方案,我在这里遗漏了什么吗?任何帮助,将不胜感激。

Leo*_*SFT 6

无法通过 SSH 克隆 Azure DevOps 存储库,需要密码

众所周知,如果公钥身份验证失败,则会要求输入密码。

所以,应该是因为公钥验证失败,所以它要求您输入帐户的密码。请确保:

  1. 当您使用命令将公钥复制到Azure Devops时,密钥末尾会出现一个空行,将其删除。
  2. 确保您的本地计算机上只有一对 SSH 密钥。
  3. 确保您的私钥具有以下格式:

    -----BEGIN RSA PRIVATE KEY-----
    
    *
    *
    *
    
    -----END RSA PRIVATE KEY-----
    
    Run Code Online (Sandbox Code Playgroud)

此外,根据github上的类似内容,我们可以尝试创建一个包含以下条目的配置文件:

Host vs-ssh.visualstudio.com
User username
IdentityFile ~/.ssh/id_rsa
IdentitiesOnly yes

Host ssh.dev.azure.com
User username
IdentityFile ~/.ssh/id_rsa
IdentitiesOnly yes
Run Code Online (Sandbox Code Playgroud)

要创建此配置文件,您可以按照此文档了解更多详细信息。

希望这可以帮助。