Microsoft TFS ssh克隆失败 我试图从我的Team Foundation Server域上的项目克隆一个RPO。我已经在我的配置文件安全性下创建了一个SSH密钥。但是,在接受回购协议的密钥后,仍要求我使用密码登录,身份验证失败: 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.

Microsoft TFS ssh克隆失败 我试图从我的Team Foundation Server域上的项目克隆一个RPO。我已经在我的配置文件安全性下创建了一个SSH密钥。但是,在接受回购协议的密钥后,仍要求我使用密码登录,身份验证失败: 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.,ssh,tfs,clone,azure-devops,Ssh,Tfs,Clone,Azure Devops,我已经试过我的visualstudio.com密码和SHH key密码,但都不起作用。但为什么它要我输入密码呢 对VST使用ssh的先决条件如下: 生成ssh密钥。在git bash中,在git bash中使用ssh-kengen选择保存密钥的路径->输入密码短语(如果不需要密码短语,请直接按enter) 在VSTS ssh公钥的KeyData中添加.ssh/id\u rsa.pub文件的内容(概要文件->安全性) 在您的情况下,.ssh/id\u rsa.pub的内容似乎与VSTS ssh公钥

我已经试过我的visualstudio.com密码和SHH key密码,但都不起作用。但为什么它要我输入密码呢

对VST使用ssh的先决条件如下:

  • 生成ssh密钥。在git bash中,在git bash中使用
    ssh-kengen
    选择保存密钥的路径->输入密码短语(如果不需要密码短语,请直接按enter)
  • 在VSTS ssh公钥的KeyData中添加
    .ssh/id\u rsa.pub
    文件的内容(概要文件->安全性)

  • 在您的情况下,
    .ssh/id\u rsa.pub
    的内容似乎与VSTS ssh公钥不同。因此,您最好执行上面的步骤1和setp2,并使用ssh协议再次进行十次克隆。

    我解决这一问题的方法是删除并重新创建我的id_rsa.pub,而不使用密码

    使用SSH时的默认身份验证模式是私钥。无论何时由于某种原因失败,ssh代理都会返回到基于用户名和密码的身份验证

    默认基于密钥的身份验证可能失败的原因有几个。以下是最常见的情况:

    a) ssh代理找不到默认的私钥文件id\u rsa,并且没有明确指定其他密钥路径

    b) 服务器中存储的公钥不正确

    c) 您尝试克隆的路径不正确

    在任何情况下,要解决此问题,首先执行git clone命令,并使用该命令进行详细日志记录:

    GIT_TRACE=1 GIT_SSH_COMMAND="ssh -vvv" git clone ssh://pathToYourRepo
    
    ssh-agent bash -c 'ssh-add ~/.ssh/anotherKey; git clone ssh://pathToYourRepo'
    
    您可以浏览日志中的每个步骤,以直观地了解问题可能是什么


    (a)情况下的故障排除

    • 确保在.ssh目录中有默认的密钥名id\u rsa。您可能在使用ssh-keygen命令生成密钥时指定了一些不同的密钥名,或者根本没有任何密钥)
    • 如果要为身份验证指定不同的密钥,请使用以下命令:

      GIT_TRACE=1 GIT_SSH_COMMAND="ssh -vvv" git clone ssh://pathToYourRepo
      
      ssh-agent bash -c 'ssh-add ~/.ssh/anotherKey; git clone ssh://pathToYourRepo'
      

    (b)情况下的故障排除

    • 确保在服务器中存储公钥时没有多余的空格

    (c)情况下的故障排除

    • 确保您没有尝试使用https版本的存储库路径进行克隆

    什么版本的TFS?我认为这可能与一个bug有关:以下步骤(即使用Git Bash而不是VSCode)有效: