4

我是一名大学生,除 80、443 以外的所有端口都被封锁。我可以通过以下方式连接到 github

Host github.com                                                                                    
  Hostname ssh.github.com
  Port 443

git push heroku master给我这个错误:

ssh: connect to host heroku.com port 22: Connection refused
fatal: The remote end hung up unexpectedly

我已经尝试过在 SO 上发布的解决方案但我仍然无法正常工作。有没有办法可以连接到 heroku 并部署我的网站?

非常感谢

4

2 回答 2

7

Heroku ssh 仅在端口 22 上工作。但是,有一个插件可以让您通过 HTTP 推送。但是,它不使用 git。相反,你heroku push.

https://github.com/ddollar/heroku-push

于 2013-03-19T16:22:52.033 回答
6

如果您的 SSH 端口被阻止并希望使用备用端口推送到 heroku,那么您可以考虑使用Tunneling

对于隧道,您需要有额外的 PC 或服务器位于被阻止的网络之外并可以访问端口 22。

对于下面的场景,我们可以使用家庭 PC 隧道进入 heroku 服务器。由于大学网络只允许端口 80 和 443,我们可以将 House PC 设置为通过端口 443 接收连接并将其隧道连接到端口 22。

在家庭电脑:

  1. 配置家用 PC 的 SSH 服务器在 443 端口上运行。 参考这里在多个端口上配置 SSH 服务器

大学电脑:

  1. 配置大学 PC 以解析 git_tunnel 别名以指向端口 9001 上的 localhost。编辑~/.ssh/config并添加以下内容

    # ~/.ssh/config
    
    Host git_tunnel
       Hostname 127.0.0.1
       User git
       Port 9001
    
  2. 添加一个新的远程别名tunnel,它将指向git@git_tunnel:{app name}.git

    git remote add tunnel git@git_tunnel:{app name}.git

  3. 从大学 PC 建立隧道到在端口 443 上侦听的房屋 PC。

    ssh -L 9001:heroku.com:22 -p 443 root@housepc.com

  4. tunnel使用之前创建的别名部署到 heroku

    git push tunnel master

于 2013-10-23T08:18:02.770 回答