推送到现有项目时出现SSH错误权限被拒绝(publickey)

时间:2013-12-15 14:41:29

标签: windows git ssh gitlab

使用GitLab做了所有必要的步骤,这些设置是:

  1. 按照this link
  2. 中的说明创建了一个rsa
  3. 复制了{my key}.pub中生成的代码,并在GitLab
  4. 中添加了此代码
  5. 在我现有的存储库中,使用命令git remote add gitlab git@gitlab.com:ridermansb/breezenhibernateproblem.git
  6. 添加到url
  7. 我尝试进行推送git push -u gitlab master
  8. 我的.ssh / config

    Host gitlab.com
      HostName gitlab.com
      IdentityFile C:\Users\Riderman\.ssh\gitlab_rsa
      IdentitiesOnly yes
    

    以下错误:

    警告:永久性地将“gitlab.com,54.243.197.170”(RSA)添加到已知主机列表中。 权限被拒绝(publickey)。 致命的:无法从远程存储库读取。

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

    我制作了一个显示所有步骤的视频:http://www.screenr.com/euVH

    我做错了什么?

1 个答案:

答案 0 :(得分:9)

看到your screencast后,我发现您没有%HOME%\.ssh\config个文件。

这很重要,因为:

  • 默认情况下,ssh会在%HOME%\.ssh\id_rsa(.pub)
  • 中查找公钥/私钥
  • 使用类似scp的语法(git@gitlab.com:yourRepo,并将“:”作为分隔符),ssh可以在.ssh/config文件中查找实际公钥/私钥的位置,使用gitlab.com作为所述config文件中的条目。

使用以下内容添加%HOME%\.ssh\config

Host gitlab.com
  HostName gitlab.com
  IdentityFile C:\path\to\.ssh\gitlab_rsa
  IdentitiesOnly yes

,您的git push -u gitlab master即可使用。

It turned out它也是关于正确设置HOME的:

  

%HOME%不正确   我将变量%HOME%配置为在本地指向%USERPROFILE%,并且它可以正常工作

Mysygit does set HOME,但如果您在git-cmd会话之外使用git,那么您有责任正确设置HOME