将rails部署到heroku – 未经授权的公钥访问

所以我正在尝试将我的应用程序部署到heroku,但每当我推动掌握它时它会一直给我这个错误:

! 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密钥到删除所有内容和替换文件的所有内容。 我甚至创建了一个不同的用户名并尝试上传,但它一直给我这个错误,认为我想上传到平滑山,实际上,我的应用名称不是光滑的山。 你们知道问题可能是什么吗?

谢谢。

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密钥禁用缓存

在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/* 

然后,运行agian

 git push heroku master 

就是这样,我终于可以再次重新部署我的应用程序……

请大家提一下:P

Rgds iVieL

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

就我而言,

 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 - 

通过键入本地shell解决了这种问题

 heroku accounts:set accountname 

其中accountname是包含Heroku应用程序的帐户的名称。 之后那个git push heroku master工作得很好。 没有做任何其他事情。

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

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

ssh-keygen -t rsa

它将生成公共/私有rsa密钥对。 如果你已经有一个,那么传递n为否。

heroku键:添加

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

而已。 就这么简单。