【问题标题】:deploying rails to heroku - unauthorized public key access将 rails 部署到 heroku - 未经授权的公钥访问
【发布时间】:2012-02-13 15:13:03
【问题描述】:

所以我正在尝试将我的应用程序部署到 heroku,但每当我推送到 master 时,它总是给我这个错误:

! Your key with fingerprint cb:e1:5c:31:cd:6b:78:6e:30:ff:eb:11:e2:4b:2e:b3 is not authorized to access smooth-mountain-8970.

我尝试了从生成新的 ssh 密钥到删除所有内容和替换文件的所有方法。我什至创建了一个不同的用户名并尝试上传,但它一直给我这个错误,以为我想上传到 smooth-mountain,而事实上,我的应用程序名称不是 smooth-mountain。大家知道可能是什么问题吗?

谢谢。

【问题讨论】:

  • 这就是support.heroku.com 的用途。
  • 这就是为什么我说我尝试了一切......
  • 能否将git remote -v的输出添加到本地机器的项目文件夹中。
  • 您想分享它以便将来对其他人有用吗?并将问题标记为已回答。
  • 哪个.config文件,你能提供一个完整的路径吗?谢谢

标签: ruby-on-rails deployment ssh heroku


【解决方案1】:

ssh-agent(一个保存用于公钥验证的私钥的程序)自 Mac OS X Leopard 起自动运行。要解决您的问题,您必须通过发出以下命令从代理中删除身份。

ssh-add -d

例子:

> ssh-add -l 
1024 a3:d5:21:2d:50:ee:3e:af:1b:44:62:60:1d:e4:51:21 /Users/bart/.ssh/id_dsa (DSA)

> ssh-add -d 
Identity removed: /Users/bart/.ssh/id_dsa (/Users/bart/.ssh/id_dsa.pub)

> ssh-add -l 
The agent has no identities.

这只会暂时从该会话中删除密钥。就个人而言,我不介意偶尔这样做。但是,如果您想永久禁用 ssh-agent,请参阅:SSH Key Disable Caching

【讨论】:

  • 就我而言,因为我为 Heroku 使用了不同的密钥(我的 id_rsa 已经在我的工作帐户中存档),所以我必须先 ssh-add -d 然后 ssh-add /Users/blah/.ssh/id_heroku
【解决方案2】:

在 Heroku.com 重命名我的应用后,我遇到了问题:

 !  Your key with fingerprint xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx is not authorized to access smooth-rain-5917.

fatal: The remote end hung up unexpectedly

我几乎尝试了所有事情......正如@Nosayr Yassin 所说......

我没有任何 .config 文件,但我在

处发现了错误的参考

my_app_root_dir/.git/config

它包含

[remote "heroku"]
        url = git@heroku.com:smooth-rain-5917.git
        fetch = +refs/heads/*:refs/remotes/heroku/*

我换了:

[remote "heroku"]
        url = git@heroku.com:my_new_app_name.git
        fetch = +refs/heads/*:refs/remotes/heroku/*

然后,再次运行

git push heroku master

就是这样,我终于可以再次重新部署我的应用了...

感谢您的所有提示:P

Rgds iVieL

已编辑:顺便说一句,我在 OSX Lion 上运行 :)

【讨论】:

  • 这真的很有帮助!谢谢!
  • 太棒了!谢谢!!
【解决方案3】:

就我而言,

heroku keys

确实显示了我的正确密钥,但我仍然无法推送到 Heroku。

这对我有用:

ssh-add -d
heroku keys:add ~/.ssh/id_rsa_heroku.pub

也就是说,昨天它对我有用,但今天......它没有。

感谢我的 Unix 大师老板的帮助,这就是今天的工作:

ssh-add ~/.ssh/id_rsa*
cd ~/.ssh
ls -l
chmod 600 id_rsa*
chmod 644 *.pub
ls -l
ssh-add id_rsa
ssh-add id_rsa_heroku
cd -

【讨论】:

    【解决方案4】:

    只需输入本地shell即可解决此类问题

    heroku accounts:set accountname
    

    其中 accountname 是拥有 Heroku 应用程序的帐户的名称。之后 git push heroku master 工作正常。不需要做任何其他事情。

    看起来很多人在使用多个帐户时遇到了这个问题,所以我想我会分享这个。我自己管理多个帐户(在一台机器上),每个帐户都部署了多个应用程序。我已经为 Heroku CLI 安装了 heroku-accounts 插件。 (https://github.com/ddollar/heroku-accounts)

    【讨论】:

      【解决方案5】:

      我通过Heroku Devcenter 找到了一个更简单的解决方案。这是我为使其正常工作所做的工作。

      ssh-keygen -t rsa

      它将生成公钥/私钥 rsa 密钥对。如果您已经有一个,则将 n 传递给否。

      heroku 键:添加

      它将找到现有的公钥并上传 SSH 公钥。

      就是这样。就这么简单。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-08-02
        • 1970-01-01
        • 2019-06-05
        • 2015-03-05
        • 2021-02-26
        • 1970-01-01
        • 2016-05-11
        • 2020-05-27
        相关资源
        最近更新 更多