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

时间:2012-01-18 21:48:39

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

感谢。

5 个答案:

答案 0 :(得分:27)

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

答案 1 :(得分:4)

在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上运行:)

答案 2 :(得分:2)

就我而言,

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 -

答案 3 :(得分:1)

只需输入本地shell

即可解决此类问题
heroku accounts:set accountname

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

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

答案 4 :(得分:1)

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

  

ssh-keygen -t rsa

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

  

heroku键:添加

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

就是这样。就这么简单。