49

我想匿名为 github 上的项目做出贡献。不作恶作剧,更本着匿名捐款的精神。

在线匿名的首选工具似乎是 TOR,它几乎适用于您可以在浏览器中执行的任何操作。但是,要在 github 上做贡献,似乎有必要使用命令行界面或 Mac 应用程序。

如何通过 Tor 在此设置中引导我的 git 操作?我怎样才能验证这确实是正在发生的事情?

编辑:请注意假名(使用虚假电子邮件地址)和匿名(使用无法与身份关联的 IP 地址)之间的区别。对 github 的假名访问是微不足道的;但是,我正在寻找匿名访问。

4

10 回答 10

22

您是否考虑过采用老式的“邮寄补丁”路线?您可以简单地检查存储库(如果需要,使用 Tor 和 Git-over-HTTPS),进行改进,然后git diff使用任何匿名消息服务向项目所有者发送补丁。想到自由网和邮政邮件。

请注意,如果我是一个大型(ish)项目的所有者,出于几个原因,我永远不会接受来自匿名实体的补丁。即使有问题的人不一定是邪恶的,在系统中拥有没有人负责的代码充其量是一个可怕的想法。另外,考虑一下代码所有权和版权问题。

于 2012-04-23T15:52:39.143 回答
18

这些答案都没有提供完整的可用工作流程,我想git push,而不是发送电子邮件!这是正确执行此操作的方法,但需要进行一些设置。说明适用于 OSX

使用 tor+ssh 匿名发布到 github

  1. 下载 tor 浏览器包和 tor 命令行代理

     brew install tor
     brew cask install torbrowser
    

    1.1 在 Tor 浏览器中,创建一个新的电子邮件地址(我使用了 hmamail)。

    1.2 在tor浏览器中,新建一个github账号

  2. 使用您的新电子邮件地址创建一个新的 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

  3. 在 github 中,创建一个空的仓库,我们称之为ByteCoin,不要用 readme 初始化它。

  4. 编辑 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密钥进行身份验证的主机名。

  5. 为您的新项目设置配置以使用 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://gitgithub-tor-alias

    git remote add origin ssh://git@github-tor-alias/staoshi_2/ByteCoin.git
  1. 还记得你是如何安装Tor命令行代理的吗?将其作为服务启动。它在 localhost:9050 上侦听

    brew services start tor
    
  2. 你准备好了吗?尝试推送到 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

强大的东西。

让我们仔细检查一下你是不是真的匿名

  1. 停下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,弄清楚如何让它工作,然后用一个新的电子邮件地址重新开始。

9. 快乐自由!

匿名。

于 2016-05-08T13:26:36.033 回答
14

在 Tor 之前,有网吧和 Wi-Fi 热点。仅仅因为有一个与您的提交相关联的 IP 并不意味着它必须是的。

于 2012-05-17T14:47:19.133 回答
13

配置 git 代理服务器让 git 使用代理服务器

或者如果这不适用于 TOR 网络,那么只需git在主机使用 TOR 网络连接到外部世界的虚拟机中运行您的命令

我认为这会混淆您提交的来源,但匿名电子邮件部分可能仍然很困难。

匿名电子邮件提供商来来去去,但截至 2015 年,Lelantos 目前是 TOR 隐藏服务,提供 clearnet 电子邮件地址。用比特币支付,但您可以使用http://www.xmr.to匿名化所有比特币交易,这样您就可以使用更私密的门罗币网络支付比特币收据。

为什么不简单地使用您在 TOR 中创建的匿名电子邮件,永远不要从 TOR 外部访问它,并将其用于 github 合规性

于 2012-05-17T18:19:40.630 回答
7

该线程中的大多数答案都不是为了回答所提出的问题。

你问:是否可以通过tor来使用我操作系统的所有应用程序,从而进行匿名贡献。在为软件项目做贡献会使您面临法律风险的情况下(例如,在密码学是非法的情况下为密码库做贡献),可能需要这样做。

有人建议你使用邮政邮件(目前最流行的答案?),去你家旁边的网吧,那里很可能有一个摄像头,并使用非常脆弱的配置,这会让你处于危险之中。有些答案是完全愚蠢的,有些答案是足够有效的,尽管它们需要一切都完美设置才能工作。

可能会发生您(或您安装的某些软件)意外错误缩进或破坏配置文件的情况,导致您的连接明确地转到 github。此外,ISP 级别的攻击者可能会看到您正在安装哪些软件包进行开发,并且他能够识别您正在处理的项目类型。

在大多数情况下,这是不可接受的。对于我和我目前的设置,有必要:

  • 与 Github 的所有连接都保证通过 TOR。
  • 所有非 tor 连接都被丢弃,所有 DNS 都通过 TOR。
  • 来自您机器的所有 TCP 流量都通过 tor 路由。这包括 apt-get,你的 IDE 建立的所有连接,一切。

这非常复杂,远远超出了我的范围。幸运的是,有些发行版允许这种事情,例如TailsWhonix。还有另一个发行版 Attack Vector,它可能随开发工具一起提供,但尚未得到证实。

安装其中之一后,您将能够通过 Tor 浏览器访问 github 的界面,并且您将能够通过 SSH 或 HTTPS 提交,无论您的偏好如何,无需特殊配置。

我建议使用 Whonix,因为它更容易保存您需要工作的数据,并保证主机上的根级别妥协不会危及您的身份。

于 2013-06-20T23:08:20.473 回答
5

您可以尝试使用Cloud 9 IDE

通过 Tor 访问它,创建新的 Github 和 Bitbucket 帐户。

分叉您想要贡献的任何项目,进行更改,发送拉取请求或补丁

于 2012-05-18T14:53:33.187 回答
4

在 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。

于 2013-01-16T02:40:35.537 回答
2

您可以在项目的克隆上本地提交,然后使用git format-patch通过电子邮件发送提交。

于 2012-05-12T06:18:32.580 回答
1

您可以通过 Tor 使用tsockstorify使任何应用程序工作。

于 2012-07-10T14:46:17.643 回答
1

另一个简单的解决方案:

$ 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://遥控器)

于 2018-12-19T12:06:20.343 回答