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

我目前在一个公共 WIFI 点,我不能使用 SSH (他们可能阻止该端口)。但是,我需要这个连接来做一个 git push

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

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

81606 次浏览

试试这个:

$ vim ~/.ssh/config

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

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

Bitbucket 也是如此:

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

Via (过时/死亡)

更新 (2015-10-29)

除了使用 ~/.ssh/config文件对其进行配置之外,您还可以简单地在所使用的远程 URL 中包含端口号。你必须这么做

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

  2. ssh.子域前置到 github.com

比如说

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

使用

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

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

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

资料来源: 替代 Gitlab SSH 端口

不需要修改 ~/.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

我有两种方法

首先

  • Tor + torify

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

torify ssh -Tv git@gitlab.com


第二

  • Tor + 丙烯酸树脂 + 开瓶器

从第一步开始配置。 然后安装 Privoxy,将 toSOCKS5转换为 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

我在捷蓝航空工作时使用的是 ExpressVPN