在VISTA上git push heroku master权限被拒绝

时间:2009-12-01 08:29:42

标签: git ssh github heroku public-key

(使用Vista)我正在尝试从我的GitHub存储库中克隆一个应用程序并将其推送到Heroku中。好的,所以我尝试用这个多次创建一个SSH密钥:

 `ssh-keygen -t rsa` 

似乎完美无缺。我在我的C:/ Users / *** /。ssh文件夹中有它。我现在尝试克隆我在GitHub中分叉的应用程序。当我尝试在rails_apps目录中克隆它时,我收到一条消息说

 Permission Denied(public key). 

我在网上找到了一个解决方案,说我应该首先运行它:

`ssh-add` 

所以我试着这样做。但它说:

无法打开与身份验证代理的连接。

然后经过一些谷歌搜索后,我发现了一些关于执行ssh-agent的事情。所以我这样做:

`ssh-agent bash`

并且命令行从我的rails_apps目录更改为:

`bash3.1$>`

所以我跑:

`bash3.1$>ssh-add [path to .ssh folder]`

并成功添加了rsa私钥(它不能与id-rsa.pub一起使用)。我还将新生成的公钥粘贴到我的GitHub帐户。

现在当我尝试克隆时:

`bash3.1$>git clone git@github.com:username/myrepo.git`

它现在成功克隆了我在GitHub中分叉的repo。现在我在我的本地仓库中有应用程序,我尝试创建一个heroku应用程序。

`bash3.1$>cd myrepo`  
`bash3.1$>heroku create myapp`

此代码成功运行。 Git remote成功添加。现在我所要做的就是推动它。

`bash3.1$>git push heroku master`

BAM!我再次收到错误消息。

Permission denied (public key)

我非常接近将我的应用程序推送到heroku。但它不会起作用。你能帮助我吗。我在这做错了什么?谢谢! :d

4 个答案:

答案 0 :(得分:61)

我有类似的问题。 运行以下命令为我修复了它:

heroku keys:add ~/.ssh/id_rsa.pub

用您的id_rsa.pub文件路径替换“〜/ .ssh / id_rsa.pub”。

答案 1 :(得分:1)

注意:您的ticket on GitHub Support提示答案:

  

你需要给heroku你的钥匙。应该有一个命令来做到这一点。如果找不到,你必须联系他们的支持。

为此,请参阅Graeme Collinsanswer(以及Heroku error: "Permission denied (public key)"):

heroku keys:add ~/.ssh/id_rsa.pub

有关该流程的更多信息,请参阅Heroku devcenter 然后,您可以看到所有键的列表,包括键的名称,如下所示:

heroku keys

注意:假设您没有使用sudo来生成密钥,因为“git clone heroku ssh permission denied”说明了(其中heroku keys:add不起作用)


有关您的其他GitHub Support ticket中的ssh密钥的详细信息。

debug1: Trying private key: /.ssh/identity
debug1: Trying private key: /.ssh/id_rsa
debug1: Trying private key: /.ssh/id_dsa
  

我不确定为什么会看/.ssh而不是~/.ssh呢   尝试将密钥对移到该路径上。


不应该是:

 git push origin master

?默认情况下,对克隆仓库的引用称为“origin”,而不是“heroku”

什么是

git remote -v show

显示?

你想要的,你可以通过heroku名称引用遥远的回购

git remote add heroku git@github.com:git_username/projectname.git

答案 2 :(得分:1)

以下一行解决了我的问题。

heroku accounts:set youraccount

答案 3 :(得分:0)

您可以先在heroku中提供Enail和Password,然后按照以下步骤将本地git存储库添加到heroku应用程序实例中。

  1. 在Git Bash $ ssh-keygen -t rsa发出此命令(默认位置并使用空密码。您也可以使用替代方法。)
  2. 再次发出bash $ heroku键:添加(它会自动从默认位置添加公钥)。
  3. 在bash发布这个以检查密钥。 $ heroku keys。
  4. 您可以为您的应用名称$ heroku git:remote -a app_name
  5. 添加遥控器
  6. 现在,您可以使用此命令$ heroku push origin master
  7. 将git repo推送到heroku