Как заставить git работать, чтобы нажимать на GitHub через tor?

Итак, GitHub теперь официально запрещен российским правительством и Роспотребнадзором. Я использовал GitHub для создания бесплатного программного обеспечения и его совместного использования, и это важная часть моей жизни.

Сегодня я установил Tor на Arch Linux, и теперь я могу просматривать GitHub и другие запрещенные сайты. Я попытался сделать git работу через Tor, но без успеха.

Вот что я сделал:

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

Но когда я пытаюсь нажать, я получаю сообщение об ошибке 501:

fatal: невозможно получить доступ https://[email protected]/X/X.git/ ': Получен HTTP-код 501 из прокси после CONNECT

Итак, 501 означает "не реализовано". У меня мало опыта с Tor (но с этого момента я начинаю ценить это), поэтому не знаю, действительно ли невозможно использовать Tor таким образом, или я что-то делаю неправильно.

В: как настроить git на использование его через Tor?

Ответы

Ответ 1

Настройка прокси-сервера 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. В приведенных выше конфигурациях указаны параметры SSH для хоста github. Он берет ваш вход и направляет его через socat через Tor.

Теперь вы можете сделать git COMMAND ssh://github/USER/REPO, а git сделает ваш COMMAND через Tor.

Ответ 2

Возможно, было проще установить виртуальную машину, как это было предложено, например Whonix (также на GitHub), который будет:

  • заботиться о соединении Tor
  • позволяет использовать Git с GitHub без необходимости определять какой-либо прокси.

Ответ 3

Посмотрите Tails OS и PIA. Оба они должны держать вас в безопасности и бесплатно.

Ответ 4

Вы можете переключиться с https на ssh и использовать прокси-сервер tor SOCKS следующим образом:

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

Обратите внимание, что вам нужны учетные данные при использовании ssh!

Ответ 5

Вы использовали неправильный синтаксис, правильно:

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