【问题标题】:git push heroku master permission deniedgit push heroku master 权限被拒绝
【发布时间】:2012-12-29 20:03:48
【问题描述】:

我正在关注 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 应用程序“/Users/lexi87/rails_projects/first_app”中。有什么解决办法吗?

【问题讨论】:

标签: ruby-on-rails git heroku


【解决方案1】:

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

如果您收到此错误,则说明您做错了什么。查看本站:https://devcenter.heroku.com/articles/keys

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

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

heroku keys:add

【讨论】:

  • 谢谢。我必须运行命令 heroku keys:add 然后选择 id_rsa 选项。
【解决方案2】:

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

ssh-keygen -t rsa

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

heroku keys:add

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

heroku create
git push heroku master

【讨论】:

    【解决方案3】:

    我用

    创建了一个密钥
    ssh-keygen -t rsa
    

    并使用了与 id_rsa 不同的文件名(在我的例子中是 heroku)。我用

    添加了heroku的密钥
    heroku keys:add
    

    在尝试将我的 master 分支推送到 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:Help -> SSH 密钥来检查)。

    我将我的 .ssh 目录 C:\Users\%username%.ssh 重命名为 .ssh.bak 并复制了我的 heroku 私有和公钥(来自 .ssh.bak 目录)到新创建的 .ssh 目录并将其命名为 id_rsa(和 id_rsa.pub)。

    现在推送按预期工作:

    git push heroku master
    

    【讨论】:

      【解决方案4】:

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

      即使 heroku toolbelt 报告它找到了我的 git_hub 公钥并上传了它,“git push heroku master”还是失败了。采取以下步骤后,它工作正常。

      1. 如果不存在,请在您的用户文件夹下创建 .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 帐户。

      【讨论】:

      • 完美@mjulmer。尝试了很多选择,但最后你的解决方案对我有用。非常感谢。这当然适用于 Windows 7 用户 :)
      • 我也认为你的方法和我尝试的主要区别是'-C emailaddress'属性。我的情况是使用 Windows 用户名作为 windows@windows-PC,而不是我在你 Heroku 注册的电子邮件地址。再次不确定这是否真的是原因:)
      • 谢谢!我正在与非 Windows 的其他答案转圈
      • 完美! * 它说我需要再写 6 个字符! *
      • @mjulmer Windows 10 上的 Windows 资源管理器不允许创建 ".ssh" 。在命令提示符窗口(控制台)中,您可以使用“mkdir .ssh”创建文件夹
      【解决方案5】:
      ssh-keygen -t rsa
      

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

      heroku keys:add
      

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

      ssh-add ~/.ssh/name_of_your_rsa
      

      并确认您的 ssh 已添加

      ssh-add -l
      

      这应该可以让你访问到推送到 Heroku 的远程仓库。

      【讨论】:

        【解决方案6】:

        在 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 keys:add 添加它,但没有帮助。

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

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

        所以我将 yourPrivateKey 更改为我的私钥文件名(默认情况下为 id_rsa)aa 并且它起作用了 :)

        【讨论】:

          【解决方案7】:

          如果您在 Windows 上工作,请务必使用 git-bash 而不是 Powershell/命令提示符。

          如果您只想重置 ssh 密钥:

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

          然后你就可以git push了。

          【讨论】:

            猜你喜欢
            • 2013-01-20
            • 2010-12-21
            • 2013-04-29
            • 2016-10-30
            • 1970-01-01
            • 1970-01-01
            • 2013-11-08
            • 2016-06-02
            • 1970-01-01
            相关资源
            最近更新 更多