Как участвовать анонимно - Code-for-Russia/How-to-start GitHub Wiki

Если Вам абсолютно необходимо анонимизировать свое участие, можете воспользоваться следующей схемой работы. В примере мы создадим нового пользователя GitHub, деятельность которого будет вестись через Tor сеть, анонимизирующую реальный IP адрес даже для GitHub.

Mac OS

  1. Установите Tor bundle и браузер
brew install tor
brew install --cask tor-browser

Стартуйте tor сервис:

brew services start tor
  1. В Tor браузере заведите новый email адрес (список рекомендованных email сервисов). Вы можете использовать этот email адрес и для других сервисов. Основная рекомендация - делать это в Tor браузере.

  2. В Tor браузере создайте новый Github аккаунт (далее в примере - hiddenuser). Вся дальнейшая деятельность в GitHub будет вестись только из Tor браузера.

  3. Создайте новый SSH ключ для нового аккаунта:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

пусть он будет сохранен в ~/.ssh/private_tor_rsa.

Далее, добавьте его на специальной странице SSH and PGP keys в GitHub. В качестве публичного ключа (Key) укажите ~/.ssh/private_tor_rsa.pub

  1. Отредактируйте SSH config (~/.ssh/config):
Host github-tor-alias
User git
HostName github.com
IdentitiesOnly yes
IdentityFile ~/.ssh/private_tor_rsa
ProxyCommand nc -X 5 -x 127.0.0.1:9050 %h %p

здесь добавляется имя хоста github-tor-alias, настраивается ssh прокси на localhost:9050 и использование private_tor_rsa ключа для аутентификации.

  1. В Tor браузере сделайте форк существующего репозитория сообщества. Пусть это будет Datasets. Далее, клонируем этот форк локально:
git clone ssh://git@github-tor-alias/hiddenuser/Datasets.git
  1. Настройте прокси и credentials для локального Git репозитория:
cd Datasets

git config --add user.name hiddenuser
git config --add user.email [email protected]

Далее работаем с проектом и Git как обычно: редактируем файлы, добавляем, коммитим. И git push должен работать:

git push origin main

Небольшой тест: проверьте, что после выключения Tor сервиса (brew services stop tor), git push/fetch/pull/clone должны перестать работать. Ошибка будет примерно такая:

ssh_exchange_identification: Connection closed by remote host
fatal: Could not read from remote repository.
  1. В GitHub через Tor браузер создайте PR (pull request) в основной репозиторий (например, Datasets).

FAQ

Зачем столько сложностей? Почему просто не завести анонимный username на GitHub?

В большинстве случаев этого достаточно. В теории GitHub может отвечать на запросы официальных ведомств на передачу данных некоторых пользователей GitHub. Как официальные ведомства используют эти данные - остается догадываться.

Я могу случайно залогиниться в анонимный аккаунт, находясь в своей обычной сети

Действительно, тогда GitHub гипотетически может связать вашего анонимного пользователя с вашим обычным пользователем, о котором есть более подробная информация, по общему IP адресу. Для дополнительного слоя анонимности, вы можете использовать специализированные дистрибутивы Linux вроде Whonix или Tails, настроив там среду только для анонимной работы.

Я использую сторонний VPN

VPN не гарантирует анонимности. У вас должен быть большой кредит доверия провайдеру VPN, чтобы позволить ему пропускать через себя свой трафик. Подробнее о проблемах с VPN можно прочитать здесь и, как обычно, на privacytools.io. Tor, в отличие от VPN, децентрализован и больше подходит для анонимности.

Как быть с сервисами, помимо GitHub?

Участие в обсуждении RFC в Google Docs, который мы рекомендуем для использования, тоже в этом случае должно осуществляться в Tor браузере под Google аккаунтом, привязанным к email адресу, зарегистрированному на email сервисе из рекомендованного списка. Аналогично для остальных сервисов.