Как участвовать анонимно - Code-for-Russia/How-to-start GitHub Wiki
Если Вам абсолютно необходимо анонимизировать свое участие, можете воспользоваться следующей схемой работы. В примере мы создадим нового пользователя GitHub, деятельность которого будет вестись через Tor сеть, анонимизирующую реальный IP адрес даже для GitHub.
Mac OS
- Установите Tor bundle и браузер
brew install tor
brew install --cask tor-browser
Стартуйте tor сервис:
brew services start tor
-
В Tor браузере заведите новый email адрес (список рекомендованных email сервисов). Вы можете использовать этот email адрес и для других сервисов. Основная рекомендация - делать это в Tor браузере.
-
В Tor браузере создайте новый Github аккаунт (далее в примере - hiddenuser). Вся дальнейшая деятельность в GitHub будет вестись только из Tor браузера.
-
Создайте новый 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
- Отредактируйте 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 ключа для аутентификации.
- В Tor браузере сделайте форк существующего репозитория сообщества. Пусть это будет Datasets. Далее, клонируем этот форк локально:
git clone ssh://git@github-tor-alias/hiddenuser/Datasets.git
- Настройте прокси и 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.
- В 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 сервисе из рекомендованного списка. Аналогично для остальных сервисов.