我正在尝试从我的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密钥密码都没有工作。但为什么要问我密码?
答案 0 :(得分:2)
使用ssh进行VSTS的先决条件如下:
ssh-kengen
- >选择保存密钥的路径 - >输入密码(如果您不想要密码,请按直接输入)。.ssh/id_rsa.pub
文件的内容。对于您的情况,似乎.ssh/id_rsa.pub
的内容与VSTS SSH公钥不同。因此,您最好使用ssh协议执行上面的step1和setp2以及十次克隆。
答案 1 :(得分:1)
我解决这个问题的方法是删除并重新创建没有密码的id_rsa.pub。
答案 2 :(得分:0)
使用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-agent bash -c 'ssh-add ~/.ssh/anotherKey; git clone ssh://pathToYourRepo'
(b)情况下的故障排除
(c)的故障排除