6

之前多次上传到Heroku,不知道这次出了什么问题-也许是因为我使用的是公共互联网?

无论如何,所以我添加了一个新的公钥

>heroku keys:add
Found existing public key: C:/Users/Chris/.ssh/id_rsa.pub
Uploading SSH public key C:/Users/Chris/.ssh/id_rsa.pub...done

>git push heroku master
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

为什么我不能推送到heroku?

我检查了我的钥匙

heroku 键

我的终端正确出现,所以它应该可以工作。有人阐明了吗?

4

2 回答 2

4

也许 ssh 会话不知道在哪里可以找到与您的公钥关联的私钥,如果%HOME%未定义为C:/Users/Chris.
(请记住,HOME在 Windows 上默认未定义)

你可以:

  • 确保 HOME 已设置
  • 定义一个%HOME%/.ssh/config文件
主机heroku
主机名 heroku.com
端口 22
身份只有是
IdentityFile /C/Users/Chris/.ssh/id_rsa # 你的私钥的位置和名称
TCPKeepAlive 是
用户 git
  • 在 bash 会话下,检查权限(for.ssh和键)。
  • 克隆heroku repo:git clone heroku:yourRepo
  • 进行一些提交并从那里推送。
于 2012-11-13T06:44:32.717 回答
2

您正在使用 Git 推送更改,而 Git 使用 SSH,而不是 Heroku。

根据我的经验,运行heroku keys不会提供有关加载到 SSH 身份验证代理中的身份的信息。为此,您需要运行ssh-add -l,它将列出加载到其中的所有身份的指纹。

要将一个身份加载到您的 SSH 身份验证代理中,您需要运行ssh-add -K ~/.ssh/your_private_key:使用-K会将您的密码存储在您的钥匙串中。

当然,如果您在远程 Heroku 服务器中也有您的公钥,这将起作用。

于 2013-02-06T17:15:27.517 回答