繁体   English   中英

git push heroku master权限被拒绝

[英]git push heroku master permission denied

我正在关注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 app“/ Users / lexi87 / rails_projects / first_app”里面。 有解决方案吗

避免此类错误的最佳方法是使用一个公钥/私钥对,而不是heroku的额外密钥。 这样您(或您的系统)就无法选择错误的密钥来登录heroku。

如果您收到此错误,则说您做错了。 请访问此站点: https//devcenter.heroku.com/articles/keys

如果您发生此错误,最好的方法是删除不必要的密钥并仅使用一个。

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

heroku keys:add

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

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

  1. 如果不存在,请在User文件夹下创建.ssh文件夹。 如果是,请删除其中的所有文件(假设您可以使用ssh键从头开始)。

  2. 在Windows资源管理器中,右键单击.ssh文件夹,然后从上下文菜单中选择Git bash。 它与Github Windows客户端软件一起安装。

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

  4. 关闭bash shell窗口。

  5. 从项目根目录中的cmd提示符输入heroku keys:add 这将找到您刚从/.ssh文件创建的密钥并将其上传到Heroku。

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

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

ssh-keygen -t rsa

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

heroku keys:add

然后创建一个新的heroku repo并将我的应用推送到它:

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

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

heroku keys:add

添加新创建的密钥或现有密钥。 如果您仍然遇到此问题,则很可能需要通过执行以下操作将密钥添加到计算机的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创建一个新密钥,然后使用heroku密钥添加它:add,但它没有帮助。

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

ServerAliveInterval 300
ServerAliveCountMax 3

host heroku.com
    user git
    hostname heroku.com
    identityfile ~/.ssh/yourPrivateKey

所以我将yourPrivateKey更改为我的私钥文件名(默认为id_rsa )aaand it working :)

我创建了一个密钥

ssh-keygen -t rsa

并使用了不同于id_rsa的文件名(在我的例子中是heroku)。 我把密钥添加到了heroku中

heroku keys:add

在尝试将我的主分支推送到heroku时,我总是收到以下错误:

$ git push heroku master
主机'heroku.com的真实性
(50.19.85.132)'无法建立。 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只使用了另一个ssh-access的id_rsa密钥(你可以通过你的git gui检查:帮助 - > SSH密钥)。

我将.ssh目录C:\\ Users \\%username%.ssh命名.ssh.bak并将我的heroku私钥和公钥(从.ssh.bak目录)复制到新创建的.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键:添加

然后你就可以git push了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM