如何使git工作通过tor推送到GitHub的提交?

时间:2014-12-03 18:48:18

标签: git github tor

因此,GitHub现在被俄罗斯政府和Rospotrebnadzor正式禁止。我使用GitHub创建自由软件并分享它,这是我生命中重要的一部分。

今天我已经在Arch Linux上安装了Tor,现在我可以浏览GitHub和其他被禁网站了。我尝试通过Tor使git工作,但没有成功。

这是我做的:

git config --global http.proxy localhost:9050
git config --global https.proxy localhost:9050

但是当我尝试推送时,我收到错误501

  

致命:无法访问' https://X@github.com/X/X.git/':在CONNECT之后从代理收到HTTP代码501

因此,501表示未实施'。我对Tor没有什么经验(但从现在开始我开始欣赏它),所以不知道用这种方式使用Tor是否真的不可能或者我做某事错。

问:如何配置git以通过Tor使用它?

6 个答案:

答案 0 :(得分:13)

设置HTTP或HTTPS代理将不起作用,因为Tor在端口9050上作为SOCKS代理。相反的是,软件socat在您的SSH config中有一些设置:

Host github
  HostName github.com
  IdentityFile /path/to/your/file
  User git
  ProxyCommand socat STDIO SOCKS4A:127.0.0.1:%h:%p,socksport=9050

您的SSH设置通常位于~/.ssh/config。上面的配置告诉主机github的SSH设置。它接受您的输入并通过socat通过Tor。

进行指导

现在你可以做git COMMAND ssh://github/USER/REPO,git会通过Tor做你的COMMAND

答案 1 :(得分:3)

按照建议安装VM可能更容易,例如Whonix(也是on GitHub),它将:

  • 负责Tor连接
  • 允许您在不必定义任何代理的情况下将Git与GitHub一起使用。

答案 2 :(得分:1)

查看Tails OSPIA。这两个都应该让你安全无虞。

答案 3 :(得分:1)

您使用了错误的语法,正确的是:

git config http.proxy socks5://localhost:9150 # 9150 for TOR browser, 9050 for TOR service git config https.proxy socks5://localhost:9150

答案 4 :(得分:0)

您可以从https切换到ssh并以这种方式使用tor SOCKS代理:

export SOCKS_SERVER=localhost:9050
git clone ssh://github.com/user/repo

请注意,使用ssh时需要凭据!

答案 5 :(得分:0)

您可以使用 proxychains 之类的工具通过 socks5 服务器代理 TCP 连接,即 Tor 守护进程。

您必须在基于 Debian 的发行版上安装 proxychains,您可以使用
$ sudo apt install proxychains 并且您可以查找它以在您的特定发行版上安装。

安装后,默认配置文件位于 /etc/proxychains.conf,您必须将最后一行从 socks4 127.0.0.1 9050 更改为 socks5 127.0.0.1 9050,这不是必需的,但如果您想要使用socks5的功能,比如流隔离等等,这是需要的。

现在,您只需执行 $ proxychains git clone https://github.com/repo 或任何 git 操作,所有这些连接都将通过本地 socks5 服务器。