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
我有
我想念明显的东西吗?
使用个人访问令牌是否更好?演练?
非常感谢
答案 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\