通过端口443推送到heroku

时间:2013-04-04 00:55:44

标签: git heroku ssh

我无法使用默认端口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.

我对这个答案抱有希望, Error in git push heroku master through ssh behind proxy 它对我不起作用......

欢迎任何建议。

2 个答案:

答案 0 :(得分: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

查看Dev Center documentation for details on how set up HTTP Git for Heroku

答案 1 :(得分:1)

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

由于github正在为你工作,为什么不利用它呢?使用像travisci这样的服务来观看github,构建和部署到heroku。

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