git推Heroku权限被拒绝

我正在关注ruby.railstutorial。 我运行命令“git push heroku master”,并吐出这个错误。

Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 

我在我的rails应用程序“/用户/ lexi87 / rails_projects / first_app”。 任何解决scheme

避免这种错误的最好方法是使用一对公钥/私钥对,而不是用于heroku的额外密钥。 这样你(或你的系统)就不能select一个错误的密钥在heroku中login。

如果你得到这个错误,你做错了什么。 检查这个网站: https : //devcenter.heroku.com/articles/keys

如果出现这个错误,最好的方法是删除不必要的密钥并只使用一个。

如果您的系统上需要多个密钥对,则可以为heroku设置一个密钥。 这是通过以下命令完成的:

 heroku keys:add 

一些帮助安装了Github Windows客户端的Windows 7用户:

即使heroku toolbelt报告发现我的git_hub公钥并上传了,'git push heroku master'失败了。 采取下面的步骤后,它工作正常。

  1. 在用户文件夹下创build.ssh文件夹(如果不存在)。 如果是这样,删除其中的所有文件(这假定你是从头开始用ssh键)。

  2. 在Windows资源pipe理器中,右键单击.ssh文件夹,然后从上下文菜单中select“Git bash”。 这是与Github Windows客户端软件一起安装的。

  3. 在bash窗口中inputssh-keygen -t rsa -C "yourname@email.com ”当提示input密码时(不要丢失这个)。

  4. closuresbash shell窗口。

  5. 从项目根目录的cmd提示符处inputheroku keys:add 。 这将find并上传您刚创build的密钥从/.ssh文件到Heroku。

现在你可以进入git push heroku master把你的应用程序推到Heroku。 注意:完成后,您需要将新生成的ssh公钥添加到您的Github帐户中。

我面临同样的问题。 在我的.ssh文件夹中,我有一个名为“已知主机”的文件。 我一直试图删除并创build新的SSH密钥,它不工作。 最后,我刚刚删除了包括“已知主机”的.ssh中的所有内容,然后使用以下命令创build了一个新的rsa密钥:

 ssh-keygen -t rsa 

然后我将这个新密钥添加到heroku使用:

 heroku keys:add 

然后创build一个新的heroku回购,并推动我的应用程序:

 heroku create git push heroku master 
 ssh-keygen -t rsa 

以上是可选的,因为您也可以链接到现有的密钥。 Heroku会提示在下一步中select密钥。

 heroku keys:add 

添加您新创build的密钥或现有的密钥。 如果您仍然遇到问题,您将很可能需要通过执行以下操作将密钥添加到您的计算机的ssh密钥列表中:

 ssh-add ~/.ssh/name_of_your_rsa 

并确认你的ssh已被添加

 ssh-add -l 

这应该让你访问推Heroku的远程回购。

在OSX,我遇到了同样的问题,我越来越

 no such identity: /Users/me/.ssh/yourPrivateKey: No such file or directory Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 

我尝试用ssh-keygen -t rsa创build一个新密钥,然后用heroku密钥添加它:add,但是没有帮助。

然后,我在〜/ .ssh /中find一个名为config的文件,在文件里面有:

 ServerAliveInterval 300 ServerAliveCountMax 3 host heroku.com user git hostname heroku.com identityfile ~/.ssh/yourPrivateKey 

所以我改变了你的PrivateKey到我的私钥文件名( id_rsa默认)aaand它工作:)

我创build了一个密钥

 ssh-keygen -t rsa 

并使用不同的文件名比id_rsa(在我的情况下heroku)。 我添加了与herku密钥

 heroku keys:add 

试图推动我的主分支到Heroku我总是收到以下错误:

$ git push heroku master
主机“heroku.com”的真实性
(50.19.85.132)'不能build立。 RSA密钥指纹是
图8b:48:5E:67:0E:C9:16:47:32:99:87:0C:1F:C8:60:BB。 你确定你想要吗?
继续连接(是/否)? 是警告:永久添加
'heroku.com,50.19.85.132'(RSA)到已知主机列表。 允许
被拒绝(公钥)。 致命的:无法从远程存储库读取。

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

正如我注意到git只使用我的id_rsa键从另一个SSH访问(您可以检查通过您的git gui:帮助 – > SSH密钥)。

我将我的.ssh目录C:\ Users \%username%.ssh命名.ssh.bak,并将我的heroku私钥和公钥(从.ssh.bak目录)复制到新创build的.ssh目录中,并将其命名为id_rsa(和id_rsa.pub)。

现在推动按预期工作:

 git push heroku master 

如果您正在使用Windows,请确保使用git-bash而不是Powershell / Command Prompt。

如果你只是想重置你的SSH密钥:

  1. 删除您的用户的.ssh目录
  2. 打开git-bash
  3. ssh-keygen -t rsa
  4. heroku键:添加

然后你将能够推动。