我目前在公共WIFI上,我无法使用SSH(他们可能阻止了该端口)。但是,我需要该连接来执行git push
。
➜ ssh -T git@github.com
ssh: connect to host github.com port 22: Connection refused
是否可以通过端口80设置SSH隧道并告诉github push
使用该连接来绕过此限制?怎么做?我在OSX(狮子)。这一定是个常见问题吗?
答案 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中简单地包含端口号。你只需要
使用ssh://user@host:port/path
之类的正确网址,而不是user@host:path
简写;以及
将ssh.
子域名添加到github.com
。
例如,而不是
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
答案 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后,只需运行此命令以检查ssh use tor。
torify ssh -Tv git@gitlab.com
第二
首先从第一步配置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