我想匿名为 github 上的项目做出贡献。不作恶作剧,更本着匿名捐款的精神。
在线匿名的首选工具似乎是 TOR,它几乎适用于您可以在浏览器中执行的任何操作。但是,要在 github 上做贡献,似乎有必要使用命令行界面或 Mac 应用程序。
如何通过 Tor 在此设置中引导我的 git 操作?我怎样才能验证这确实是正在发生的事情?
编辑:请注意假名(使用虚假电子邮件地址)和匿名(使用无法与身份关联的 IP 地址)之间的区别。对 github 的假名访问是微不足道的;但是,我正在寻找匿名访问。
您是否考虑过采用老式的“邮寄补丁”路线?您可以简单地检查存储库(如果需要,使用 Tor 和 Git-over-HTTPS),进行改进,然后git diff使用任何匿名消息服务向项目所有者发送补丁。想到自由网和邮政邮件。
请注意,如果我是一个大型(ish)项目的所有者,出于几个原因,我永远不会接受来自匿名实体的补丁。即使有问题的人不一定是邪恶的,在系统中拥有没有人负责的代码充其量是一个可怕的想法。另外,考虑一下代码所有权和版权问题。
这些答案都没有提供完整的可用工作流程,我想git push,而不是发送电子邮件!这是正确执行此操作的方法,但需要进行一些设置。说明适用于 OSX
下载 tor 浏览器包和 tor 命令行代理
brew install tor
brew cask install torbrowser
1.1 在 Tor 浏览器中,创建一个新的电子邮件地址(我使用了 hmamail)。
1.2 在tor浏览器中,新建一个github账号
使用您的新电子邮件地址创建一个新的 ssh 密钥,仅用于 tor
ssh-keygen -t rsa -b 4096 -C "satoshi_2@hmamail.com"
2.1。给它起一个名字,如:~/.ssh/private_tor_rsa
2.2. 在 github 中,转到SSH 和 PGP 密钥并添加一个新的SSH密钥,使标题令人难忘。
2.3. 在 github 中,将Key设置为您刚刚创建的公钥clip < ~/.ssh/private_tor_rsa.pub
在 github 中,创建一个空的仓库,我们称之为ByteCoin,不要用 readme 初始化它。
编辑 ssh 配置文件~/.ssh/config(如果不存在则创建)
Host github-tor-alias
User git
HostName github.com
IdentitiesOnly yes
IdentityFile ~/.ssh/tor_only_rsa
ProxyCommand nc -X 5 -x 127.0.0.1:9050 %h %p
您创建了一个名为github-tor-alias并告诉 ssh 使用代理localhost:9050并使用tor_only_rsa密钥进行身份验证的主机名。
为您的新项目设置配置以使用 tor 代理和凭据。
mkdir secret-project
cd secret-project
git init
git config --add user.name satoshi_2
git config --add user.email staoshi_2@hmamail.com
5.1。注意ssh://git和github-tor-alias
git remote add origin ssh://git@github-tor-alias/staoshi_2/ByteCoin.git
还记得你是如何安装Tor命令行代理的吗?将其作为服务启动。它在 localhost:9050 上侦听
brew services start tor
你准备好了吗?尝试推送到 github:
git push origin master
它奏效了吗?去仔细检查一切,我错过了什么吗?请编辑此答案!
呼吸自由的空气并开始创作!
那么我们刚刚做了什么?我们创建了一个仅与 tor 网络相关联的新身份,就 github.com 而言,您是 staoshi_2,可以在世界任何地方。
tor 在 上运行代理127.0.0.1:9050,因为我们ProxyCommand在~/.ssh/config文件中设置了 a,所以您的所有流量都通过 tor 代理,git 使用您的新 ssh 密钥,因为您添加了和IdentityFile文件。IdentitiesOnly~/.ssh/config
强大的东西。
让我们仔细检查一下你是不是真的匿名
停下tor来再试git push一次,最好失败!
ssh_exchange_identification: Connection closed by remote host
fatal: Could not read from remote repository.
8.1。如果那个 git push 成功了,你猜怎么着,你没有使用 tor,github.com 知道你的 IP,弄清楚如何让它工作,然后用一个新的电子邮件地址重新开始。
匿名。
在 Tor 之前,有网吧和 Wi-Fi 热点。仅仅因为有一个与您的提交相关联的 IP 并不意味着它必须是您的。
配置 git 代理服务器让 git 使用代理服务器
或者如果这不适用于 TOR 网络,那么只需git在主机使用 TOR 网络连接到外部世界的虚拟机中运行您的命令
我认为这会混淆您提交的来源,但匿名电子邮件部分可能仍然很困难。
匿名电子邮件提供商来来去去,但截至 2015 年,Lelantos 目前是 TOR 隐藏服务,提供 clearnet 电子邮件地址。用比特币支付,但您可以使用http://www.xmr.to匿名化所有比特币交易,这样您就可以使用更私密的门罗币网络支付比特币收据。
为什么不简单地使用您在 TOR 中创建的匿名电子邮件,永远不要从 TOR 外部访问它,并将其用于 github 合规性
该线程中的大多数答案都不是为了回答所提出的问题。
你问:是否可以通过tor来使用我操作系统的所有应用程序,从而进行匿名贡献。在为软件项目做贡献会使您面临法律风险的情况下(例如,在密码学是非法的情况下为密码库做贡献),可能需要这样做。
有人建议你使用邮政邮件(目前最流行的答案?),去你家旁边的网吧,那里很可能有一个摄像头,并使用非常脆弱的配置,这会让你处于危险之中。有些答案是完全愚蠢的,有些答案是足够有效的,尽管它们需要一切都完美设置才能工作。
可能会发生您(或您安装的某些软件)意外错误缩进或破坏配置文件的情况,导致您的连接明确地转到 github。此外,ISP 级别的攻击者可能会看到您正在安装哪些软件包进行开发,并且他能够识别您正在处理的项目类型。
在大多数情况下,这是不可接受的。对于我和我目前的设置,有必要:
这非常复杂,远远超出了我的范围。幸运的是,有些发行版允许这种事情,例如Tails或Whonix。还有另一个发行版 Attack Vector,它可能随开发工具一起提供,但尚未得到证实。
安装其中之一后,您将能够通过 Tor 浏览器访问 github 的界面,并且您将能够通过 SSH 或 HTTPS 提交,无论您的偏好如何,无需特殊配置。
我建议使用 Whonix,因为它更容易保存您需要工作的数据,并保证主机上的根级别妥协不会危及您的身份。
在 Linux 中:
安装 tor 并前往http://tormail.org/为自己获取一个匿名电子邮件帐户。
在本地机器上让自己成为一个新的 linux 用户并为该用户生成一个新的 ssh 密钥,这样您的匿名帐户就不会与您的其他 github 帐户拥有相同的公钥 :-) 您将通过该用户完成所有匿名工作帐户
接下来使用您的 tormail 电子邮件注册 github 并安装您刚刚生成的公共 ssh 密钥
现在安装 socat http://freecode.com/projects/socat。但是您可能会在发行版的包管理器中找到它。
现在编辑 /etc/ssh/ssh_config 并添加
HOST *
ProxyCommand socat STDIO SOCKS4A:127.0.0.1:%h:%p,socksport=9050
确保你的 tor 被配置为使用端口 9050。你应该在你的 torrc 文件中看到这个:
SocksListenAddress 127.0.0.1
SocksPort 9050
现在你所有的 SSH 都将通过 TOR,包括任何通过 ssh 协议的 github 访问。所以使用 ssh 协议进行克隆: git clone git@github.com:bitcoin/bitcoin.git
使用wireshark 验证没有任何东西直接进入github。
您可以在项目的克隆上本地提交,然后使用git format-patch通过电子邮件发送提交。
您可以通过 Tor 使用tsocks或torify使任何应用程序工作。
另一个简单的解决方案:
$ git remote add tor https://github.com/yourUser/yourProject
$ torsocks git pull tor
$ torsocks git push tor
您显然需要记住tor在您的 git 命令中添加后缀,或者您可以配置别名:
$ alias gpushtor="torsocks git push tor"
$ alias gpulltor="torsocks git pull tor"
(注意:它只适用于https://遥控器)