8

我无法使用默认端口 22,因此根据 hartl rails 教程设置 git 和 heroku 时遇到了困难。

通过在 ~/.ssh/config 文件中包含以下内容,我能够推送到 git:

Host github.com
User git
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Port 443

但是,类似的条目不适用于 heroku:

Host heroku.com
User git
Hostname ssh.heroku.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Port 443

它似乎挂在这个调试行:

  debug1: identity file /c/Users/[my folder name]/.ssh/id_rsa type 1

...在此消息失败之前:

  ssh_exchange_identification: Connection closed by remote host.

我对这个答案抱有希望, git push heroku master 中的错误通过代理后面的 ssh 它对我也不起作用......

任何的建议都受欢迎。

4

2 回答 2

11

Heroku 正在努力提供将源代码移动到平台上的替代方法,请查看heroku push,例如:https ://github.com/ddollar/heroku-push

它使用 https,因此不易受到您遇到的防火墙阻止的影响。

更新

Heroku 现在有beta HTTP Git支持。如果问题是由于您无法在端口 22 上访问 Heroku 引起的,那么 HTTP Git 应该可以解决它(它适用于端口 443)。

要使用 HTTP Git,首先确保 Toolbelt 已更新并且您的凭据是最新的:

$ heroku update
$ heroku login

(这很重要,因为 Heroku HTTP Git 的身份验证方式与 Toolbelt 的其余部分略有不同)

在测试期间,您可以通过将--http-git标志传递给相关的heroku apps:createheroku git:cloneheroku git:remote命令来获得 HTTP。要创建一个新应用并使用 HTTP Git 远程配置它,请运行以下命令:

$ heroku apps:create --http-git

要将现有应用程序从 SSH 更改为 HTTP Git,只需从计算机上的应用程序目录运行以下命令:

$ heroku git:remote --http-git
Git remote heroku updated

查看开发中心文档,了解如何为 Heroku 设置 HTTP Git 的详细信息

于 2013-04-04T01:44:53.103 回答
1

哇。让我印象深刻的是 github 有远见在 443 上运行 ssh。heroku 很可能只是在运行 https,这显然不允许您建立与 git over 的 ssh 连接。

既然 github 为你工作,为什么不利用它呢?使用 travisci 之类的服务来观看 github、构建和部署到 heroku。

一个使用 travis 的简单示例:http: //metabates.com/2012/10/23/deploying-to-heroku-from-travisci/

于 2013-04-04T01:12:09.257 回答