9

(使用 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远程添加成功。现在我所要做的就是推动它。

`bash3.1$>git push heroku master`

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

Permission denied (public key)

我非常接近将我的应用程序推送到heroku。但它只是行不通。你能帮助我吗。我在这里做错了什么?谢谢!:D

4

4 回答 4

61

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

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

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

于 2011-01-18T08:42:21.867 回答
1

注意:您在 GitHub 支持上的工单提示了答案:

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

为此,请参阅Graeme Collins回答(以及Heroku 错误:“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不起作用)


有关 ssh 密钥的更多信息,请参阅您的其他GitHub 支持票

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

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

做什么

git remote -v show

展示?

您可以根据需要,通过 heroku 名称引用远程仓库

git remote add heroku git@github.com:git_username/projectname.git
于 2009-12-01T09:17:20.083 回答
1

以下行为我解决了这个问题。

heroku accounts:set youraccount
于 2012-01-14T17:03:44.907 回答
0

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

  1. 在 Git Bash $ ssh-keygen -t rsa 上发出此命令(默认位置和空密码。您也可以选择)。
  2. 再次在 bash $ heroku keys:add 发出(它会自动从默认位置添加公钥)。
  3. 在 bash 上发出这个来检查密钥。$ heroku 键。
  4. 您可以为您的应用名称添加遥控​​器 $ heroku git:remote -a app_name
  5. 现在你可以使用这个命令将 git repo 推送到 heroku
于 2014-08-31T02:31:20.030 回答