Git:公钥验证失败。

15

当我想在 Azure DevOps(VSTS)上使用 git 时,我无法使用 git clone、pull、push 等命令,出现以下错误:

远程: 远程:您的 Git 命令执行失败。 远程: 详细信息: 远程: 公钥验证失败。 远程: 致命: 无法从远程仓库读取。

但是,当我使用以下命令时,它可以工作,所以问题不在于密钥。 ssh-agent sh -c 'ssh-add ~/.ssh/key; git push repo'

当我执行 git clone、push、pull 等命令时,我认为它会通过您的 .ssh 目录自动检查使用哪个密钥。有人知道如何解决这个问题吗?


我在developercommunity看到了一个类似的帖子,表明这个bug已经被修复。 - Jayendran
请检查此问题:https://dev59.com/Ep_ha4cB1Zd3GeqP590P - Shayki Abramczyk
5个回答

27

通过创建 ~/.ssh/config 并添加以下内容进行修复:

Host xxx.visualstudio.com
  IdentityFile ~/.ssh/key

请确保执行 chmod 0400 ~/.ssh/config



13
我在 ~/.ssh/config 文件中添加了以下内容:
Host ssh.dev.azure.com
  IdentityFile ~/.ssh/[you private key file]

5

我的情况比较棘手。 VisualStudio.com 禁止了我的旧 ssh 密钥,并没有通知我,但我进行了实验,发现只需要添加一个新密钥并使用 即可解决。

ssh-keygen -f ~/.ssh/new_key

在~/.ssh/config文件中:
Host vs-ssh.visualstudio.com
  IdentityFile ~/.ssh/new_key

做到了。 有趣的事情是,他们不允许你从SSH密钥页面中删除旧的被禁止的密钥。

更新: 在OpenSSH 8.9p1中,默认生成ssh-rsa密钥,您可能需要在ssh_config或~/.ssh/config中启用ssh-rsa

    PubkeyAcceptedAlgorithms +ssh-rsa
    HostkeyAlgorithms +ssh-rsa

请查看https://dev59.com/JcTra4cB1Zd3GeqPwhVo#72102410


4

我通过将身份添加到SSH提供程序来解决问题,方法如下:

ssh-add [您的私钥路径]

例如:

ssh-add /home/myuser/.ssh/id_rsa


1
对我来说唯一有效的方法。绝对需要更多的赞! - NoobInside

1

在与Yuriy Pozniak的解决方案类似的线路上,我只是删除并重新添加了我的公钥,这解决了我的问题。

修改~/.ssh/config文件以明确指向Azure DevOps主机到我的私钥对我没有起作用。


谢谢!添加了一个新的公钥,现在可以用了。 这真的很疯狂。昨晚我还能从Debian机器连接,早上醒来后突然就不能推送更改到代码库了。如果这是微软,那肯定够疯狂的。 - Kiran

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接