我是Rails的新手,我试图将一个非常简单的应用程序部署到Heroku。这是我部署的第二个应用程序,第一个我能够做到这一点就好了。但是我遇到了一些问题。每当我“ git push heroku master ”时,我都会收到此错误:
!你的密钥有指纹xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx无权>访问my_heroku_app。
致命:远程端意外挂断
我在登录heroku后尝试管理我的密钥。如果我输入我的控制台“ heroku keys ”,那么我得到:
myemailaddress没有钥匙。
但是,如果我运行命令“ heroku键:添加”,我会
找到现有的公钥:/Users/michele/.ssh/id_rsa.pub 上传ssh公钥/Users/michele/.ssh/id_rsa.pub !指纹已经存在。请为每个Heroku帐户使用一个ssh密钥
请帮帮我!这太令人沮丧了,我不知道出了什么问题! 谢谢
答案 0 :(得分:288)
我遇到了同样的问题,我跟着这篇文章和其他同类文章没有成功: - ((
最后,我找到了解决方案: 我不得不在我的机器中添加新的rsa身份!
所以,首先我创建了一个新的rsa密钥:
ssh-keygen -t rsa -C "giordano.scalzo[at]gmail.com" -f ~/.ssh/id_rsa_heroku
然后将其添加到我的机器
ssh-add ~/.ssh/id_rsa_heroku
,最后,到Heroku
heroku keys:add ~/.ssh/id_rsa_heroku.pub
之后,
git push heroku master
像魅力一样工作!
希望这有帮助。
答案 1 :(得分:61)
我也有多个密钥和多个heroku帐户,所以我每隔几个月就会遇到这个问题。如上所述Giordano Scalzo,Tom Carchrae和user664833,主要问题是ssh-agent,您可以使用ssh-add
命令控制它。手册页(man ssh-add
)实际上非常简洁明了,所以请查看。
您可以列出ssh-agent所知道的所有密钥:
ssh-add -l
您可以删除ssh-agent知道的所有密钥:
ssh-add -D
或使用
删除特定密钥ssh-add -d ~/.ssh/id_rsa_example_key_file_use_your_own
别担心!您实际上并没有删除密钥,只是更改了ssh-agent自动尝试使用的密钥,例如,当您尝试推送到heroku时。根据需要添加和删除密钥很容易,所以对我来说,当我对此问题感到沮丧时,解决它的最简单方法是删除所有密钥并仅添加回我想要使用的密钥。< / p>
ssh-add -D
ssh-add ~/.ssh/id_rsa_example_use_this_one_i_mean_it
答案 2 :(得分:38)
您的计算机有SSH密钥,但该SSH密钥与另一个Heroku帐户相关联。
如果您需要在同一台计算机上同时使用这两个帐户,则应在您的计算机上创建一个新的SSH密钥并将其上传到Heroku:
$ ssh-keygen
当提示问你时,请确保将其保存为'/Users/User/.ssh/new_id_rsa.pub'。
$ heroku keys:add /Users/User/.ssh/new_id_rsa.pub
然后,您需要为heroku.com
添加~/.ssh/config
的备用主机:
Host heroku-alt
HostName heroku.com
IdentityFile ~/.ssh/new_id_rsa
然后更新项目中的.git/config
以使用主机别名:
[remote "heroku"]
url = git@heroku-alt:myapp.git
fetch = +refs/heads/*:refs/remotes/heroku/*
通过在特定项目的heroku
文件的远程中选择heroku-alt
和.git/config
,您可以管理哪些项目使用哪些凭据。
答案 3 :(得分:9)
您需要创建新密钥并添加
运行后指定新文件名
ssh-keygen
然后(在我的情况下)
heroku keys:add /home/alex/.ssh/alex_heroku_rsa.pub
答案 4 :(得分:3)
上周我有同样的问题。这个链接帮助了我。我希望它可以帮到你一点点。 http://devcenter.heroku.com/articles/keys
答案 5 :(得分:3)
就我而言,heroku keys
已经列出了正确的密钥。所以,我所要做的只是运行ssh-add /path/to/that/key
,然后一切正常。
答案 6 :(得分:2)
我还有两个Heorku账户,作为一个解决方案我被邀请&#34;我的主帐户(其密钥由Heroku自动使用的帐户)作为我项目的合作者。
答案 7 :(得分:1)
只是不想为Windows用户添加解决方案。
用它创建一个密钥OBS你需要将鼠标移动到空白区域以产生随机性。
保存您的密钥,只需记住将您的密钥重命名为[name] .pub
在终端中运行heroku keys:add
!
答案 8 :(得分:0)
在我的情况下,问题是我使用的ssh版本。 我只是将GIT_SSH环境变量设置为另一个(“GIT_SSH = / usr / bin / ssh”),一切都运行正常。