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

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

  1. 按照此链接中所述创build一个rsa
  2. 复制{my key}.pub生成的代码,并在GitLab中添加此代码
  3. 在我现有的存储库添加到URL与命令git remote add gitlab git@gitlab.com:ridermansb/breezenhibernateproblem.git
  4. 我试图做推git push -u gitlab master

我的.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)。 致命的:无法从远程存储库读取。

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

我做了一个video显示所有的步骤: http : //www.screenr.com/euVH

我究竟做错了什么?

看到你的截屏后 ,我看到你没有%HOME%\.ssh\config文件。

这很重要,因为:

  • 默认情况下,ssh将在%HOME%\.ssh\id_rsa(.pub)查找公钥/私钥%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将会工作。

原来,这也是关于正确设置HOME:

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

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