Github(SSH)通过公共WIFI,端口22被阻止

时间:2011-10-31 12:37:54

标签: git ssh github wifi public

我目前在公共WIFI上,我无法使用SSH(他们可能阻止了该端口)。但是,我需要该连接来执行git push

➜ ssh -T git@github.com
ssh: connect to host github.com port 22: Connection refused

是否可以通过端口80设置SSH隧道并告诉github push使用该连接来绕过此限制?怎么做?我在OSX(狮子)。这一定是个常见问题吗?

6 个答案:

答案 0 :(得分:333)

试试这个:

$ vim ~/.ssh/config

添加

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

来源:https://help.github.com/articles/using-ssh-over-the-https-port

答案 1 :(得分:41)

Bitbucket也是如此:

Host bitbucket.org
  Hostname  altssh.bitbucket.org
  Port  443

via(过时/死亡)

via, updated(2015-10-29)

答案 2 :(得分:18)

除了使用~/.ssh/config文件进行配置外,您还可以在您使用的远程URL中简单地包含端口号。你只需要

  1. 使用ssh://user@host:port/path之类的正确网址,而不是user@host:path简写;以及

  2. ssh.子域名添加到github.com

  3. 例如,而不是

    git@github.com:cdbennett/python-gitlab.git
    

    使用

    ssh://git@ssh.github.com:443/cdbennett/python-gitlab.git
    

答案 3 :(得分:4)

对于gitlab,可以添加以下内容:

Host gitlab.com
  Hostname altssh.gitlab.com
  User git
  Port 443

来源:Alternate Gitlab SSH Port

答案 4 :(得分:1)

无需修改~/.ssh/config。您可以通过git remote add ..添加另一个远程存储库。

// github
git remote add ssh://git@ssh.github.com:443/repo/name.git

// gitlab
git remote add ssh://git@altssh.gitlab.com:443/repo/name.git

答案 5 :(得分:0)

我找到两种方法

第一

  • tor + torify

在系统上成功安装和配置tor后,只需运行此命令以检查ssh use tor。

torify ssh -Tv git@gitlab.com


第二

  • tor + privoxy +开瓶器

首先从第一步配置tor。 然后安装 privoxy 将SOCKS5转换为HTTP代理。

sudo apt install privoxy

然后安装开瓶器

sudo apt install corkscrew

将此配置文件放置在〜/ .ssh / config

host *
    ProxyCommand corkscrew 127.0.0.1 8118 %h %p

或使用 ncat

Host gitlab.com
        User git
        ProxyCommand ncat --proxy 127.0.0.1:8118 %h %p

还可以使用 nc 代替 ncat

    ProxyCommand nc --proxy 127.0.0.1:8118 %h %p

现在ssh可以使用配置的代理了。

[编辑]

简单版本

在ssh命令之前使用torify。

torify ssh -Tv git@gitlab.com


要使用 Privoxy + Tor ,可能需要更改默认配置。 对我而言,请取消注释/etc/privoxy/config

中的这一行
forward-socks5t   /               127.0.0.1:9050 .

ssh配置

Host *
    ProxyCommand nc --proxy 127.0.0.1:8118 %h %p