Microsoft TFS ssh 克隆失败
Posted
技术标签:
【中文标题】Microsoft TFS ssh 克隆失败【英文标题】:Microsoft TFS ssh cloning fails 【发布时间】:2017-07-28 20:42:03 【问题描述】:我正在尝试从我的 Team Foundation Server 域上的项目中克隆一个 repo。我在我的个人资料安全性下创建了一个 SSH 密钥。但是,在接受 repo 的密钥后,我仍然被要求使用密码登录并且身份验证失败:
git clone ssh://mydomain@mydomain.visualstudio.com:22/Project/_git/project-repo
Cloning into 'project-repo'...
mydomain@mydomain.visualstudio.com's password:
Permission denied, please try again.
mydomain@mydomain.visualstudio.com's password:
Permission denied, please try again.
mydomain@mydomain.visualstudio.com's password:
Permission denied (password,publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
我已经尝试了我的 visualstudio.com 密码和 SHH 密钥密码,但都不起作用。但它为什么要我输入密码?
【问题讨论】:
什么版本的 TFS? 我认为这可能与一个错误有关:github.com/Microsoft/vscode/issues/13680 按照这些步骤(即使用 Git Bash 而不是 VSCode)工作:***.com/a/37618202/361842 【参考方案1】:在 VSTS 中使用 ssh 的先决条件如下:
-
生成 ssh 密钥。在 git bash 中,在 git bash 中使用
ssh-kengen
-> 选择保存密钥的路径 -> 输入密码(如果您不需要密码,请直接按回车)。
在 VSTS SSH 公钥(配置文件 -> 安全)中的 KeyData 中添加 .ssh/id_rsa.pub
文件的内容。
对于您的情况,.ssh/id_rsa.pub
的内容似乎与 VSTS SSH 公钥不同。所以你最好做上面的step1和setp2,再用ssh协议克隆十次。
【讨论】:
【参考方案2】:我解决这个问题的方法是在没有密码的情况下删除并重新创建我的 id_rsa.pub。
【讨论】:
【参考方案3】:使用 SSH 时的默认身份验证模式是私钥。每当由于某种原因失败时,ssh-agent 就会退回到基于用户名和密码的身份验证。
基于默认密钥的身份验证可能失败的原因有多种。以下是最常见的情况:
a) ssh-agent 找不到默认的私钥文件 id_rsa,并且没有明确指定其他密钥路径。
b) 存储在服务器中的公钥不正确。
c) 您尝试克隆的路径不正确。
在任何情况下,要解决问题,首先执行 git clone 命令并使用以下命令进行详细日志记录:
GIT_TRACE=1 GIT_SSH_COMMAND="ssh -vvv" git clone ssh://pathToYourRepo
您可以浏览日志中的每个步骤,以直观了解问题可能是什么。
(a) 情况下的故障排除
确保您在 .ssh 目录中有默认密钥名称 id_rsa。您可能在使用 ssh-keygen 命令生成密钥时指定了一些不同的密钥名,或者根本没有任何密钥)。如果您想指定不同的身份验证密钥,请使用以下命令:
ssh-agent bash -c 'ssh-add ~/.ssh/anotherKey; git clone ssh://pathToYourRepo'
(b)情况下的故障排除
确保在服务器中存储公钥时没有多余的空格。(c)情况下的故障排除
确保您没有尝试使用存储库路径的 https 版本进行克隆。【讨论】:
以上是关于Microsoft TFS ssh 克隆失败的主要内容,如果未能解决你的问题,请参考以下文章
为啥添加 Microsoft.CodeAnalysis.NetAnalyzers 时 TFS 2015 SP3 构建代理会失败?
SSH 到 GitLab 权限被拒绝(公钥、gssapi-keyex、gssapi-with-mic)
即使安装了 Microsoft.Net.Compilers,C# 6.0 构建也会在 TFS 构建上失败
将存储库从VSTS帐户克隆到不同的TFS帐户,并执行提取以进行更新
使用Visual Studio 2017克隆TFS Git repo时出错400
使用 TFS BDT 运行 Telerik 测试失败并出现 Microsoft.VisualStudio.Shell.11.0.dll 找不到错误