Git ssh公钥认证失败git azure devops

时间:2018-10-25 08:51:08

标签: git azure-devops

azureDevops和学习的新手。

我正在尝试将git repo从powershell推送到azuredevops repo 并且尝试将其推送到存储库时,我不断收到不同的身份验证错误。

我希望有人能阐明我应该检查并做的事情或正确的演练

EG 
 git remote add origin git@ssh.dev.azure.com:v3/MyAzure/MyProject/MyRepo
 git push -u origin --all

我不断得到

  

git@ssh.dev.azure.com的密码:(输入了各种密码,但仍然失败)正在谈论哪个密码?

     

     

权限被拒绝,请重试。

     

致命:无法从远程存储库读取。

     

请确保您具有正确的访问权限    并且存储库存在。

验证

  $ ssh -T myemail@mycompany.com
  ssh: connect to host mycompany.com  port 22: Connection refused

我有

  • 在azureDevops中创建了一个仓库
  • 根据ms文档使用git-bash创建ssh密钥 复制并粘贴无空间到azuredevos安全性中。
  • 转到我的个人资料/安全信息,并添加了一个ssh密钥(在git bash中生成)

我想念明显的东西吗?

使用个人访问令牌是否更好?演练?

非常感谢

11 个答案:

答案 0 :(得分:11)

这对我有用

~/.ssh/中添加配置文件

并添加这些行

Host ssh.dev.azure.com
IdentityFile ~/.ssh/my_ssh_private_key
IdentitiesOnly yes

@wcoder的link有帮助

答案 1 :(得分:5)

在此之前,我已经尝试过其他答案,但是没有任何效果。最后,this article在Fedora中为我提供了解决方案。

使用-v开关(ssh -v -T git@ssh.dev.azure.com)运行ssh会显示此错误:

debug1: send_pubkey_test: no mutual signature algorithm

解决方法是将此行添加到客户端配置文件(〜/ .ssh / config):

PubkeyAcceptedKeyTypes +rsa-sha2-256,rsa-sha2-512

答案 2 :(得分:3)

我也有同样的问题。我犯了与@eltbus相同的错误(试图自己给文件命名),因此他坚持默认设置“ id_rsa”的回答对我很有帮助。我还意识到,当我生成rsa密钥对时,我将id_rsa.pub保存到了错误的文件夹中。

原来,括号中显示的路径和文件名(例如/home/guille/.ssh/id_rsa)是默认值。如果您只是点击Enter来接受默认的文件名和位置,而不是输入路径和/或文件名,则可以避免上述两个错误。

示例:

[####@#### .ssh]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/guille/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa.
Your public key has been saved in id_rsa.pub.

答案 3 :(得分:2)

我相信@Schalton的评论是正确的:SSH验证失败,因此会提示通过。

有同样的问题。通过将密钥生成为'id_rsa'而不是使用其他名称(尝试使用其他名称,但没有一个起作用)来“解决”。

[####@#### .ssh]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/guille/.ssh/id_rsa): id_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa.
Your public key has been saved in id_rsa.pub.

答案 4 :(得分:1)

登录到您的Azure DevOps。转到 Repos > 文件,然后单击克隆。最后,在 HTTPS 标签下,单击生成Git凭据

答案 5 :(得分:1)

我看到我的repo ssh URL与我的DevOps URL 不同,在我的案例中,有效的方法是将配置文件添加到〜/ .ssh文件夹中,其中包含以下信息:

Host vs-ssh.visualstudio.com <-- hostname found in my repo SSH URL
    IdentityFile ~/.ssh/id_rsa_vsonline <-- your key name
    IdentitiesOnly yes

然后用

进行了测试
ssh -v vs-ssh.visualstudio.com

在跟踪中,我得到类似

已通过vs-ssh.visualstudio.com([IP]:22)认证。

答案 6 :(得分:0)

在Azure DevOps设置页面上粘贴密钥时,请勿更改任何内容,包括在公共密钥末尾附加的空格。

答案 7 :(得分:0)

我跟随the official permissions denied troubleshooting guide,结果证明我毕竟had to re-generate the key。但我认为最好遵循该指南,因为它提供了有关许多不同场景的信息,其中大多数未在此处提及。

答案 8 :(得分:0)

我有同样的问题。

我的解决方法是:

当我尝试使用sudo git clone...时,该路径无权访问我的公钥和私钥位置:\home\localuser\.ssh\...

要解决此问题,我将目标路径的所有权更改为同一用户:存储了我的密钥的群件,避免使用sudo git clone....,现在我使用git clone而不使用sudo,并且一切正常。

希望您能理解...

答案 9 :(得分:0)

我意识到这个问题提到了powershell。但是,有了标题和标签,其他操作系统上的人可能就到这里了,并且从Mac和linux访问Azure Devops时存在一个常见问题。

要针对Mac和Linux修复此问题,请添加 IdentitiesOnly yes~/.ssh/config

这是Azure Devops的常见问题。不幸的是,我不确定为什么可以解决它。

答案 10 :(得分:0)

我尝试了所有答案,但都没有成功。事实证明,这就像将 id_rsa 和 id_rsa.pub 文件放在我的用户文件夹下的 .ssh 文件夹 中一样简单。

因此,通过在以下位置之间移动文件(id_rsa 和 id_rsa.pub),它解决了问题并且身份验证成功。

来自:

C:\Users\My User\

致:

C:\Users\My User\.ssh\