git push heroku master权限被拒绝

Cor*_*son 52 git ruby-on-rails 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.
Run Code Online (Sandbox Code Playgroud)

我在我的rails app"/ Users/lexi87/rails_projects/first_app"里面.有解决方案吗

Fa1*_*gel 67

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

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

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

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

heroku keys:add
Run Code Online (Sandbox Code Playgroud)

  • 谢谢.我必须运行命令heroku键:添加然后选择id_rsa选项. (21认同)

小智 13

安装了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帐户.


Ada*_*abi 8

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

ssh-keygen -t rsa
Run Code Online (Sandbox Code Playgroud)

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

heroku keys:add
Run Code Online (Sandbox Code Playgroud)

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

heroku create
git push heroku master
Run Code Online (Sandbox Code Playgroud)