使用 GitHub 的几种方式——兼谈安全性和隐匿性的经验
来源:https://program-think.blogspot.com/2016/03/GitHub-Security-Tips.html文章目录★本文面向哪些读者?★本文的必要性及重要性★阅读本文的前提——需要先了解哪些知识?★使用 GitHub 的两种方式★Client 方式支持哪些协议?★上述几种客户端协议的优缺点对比★如何用 SSH 方式操作 GitHub 的项目?★使用代理的必要性/重要性★针对不同的 Git 使用方式,如何配置代理?★其它注意事项 先告诉大伙儿一个好消息: 前几天俺把《太子党关系网络》开源到 GitHub 之后,头两天就获得大量网友的关注,以至于俺这个项目至少连续两天排到了 GitHub 的“每日 Trending”(这个排名汇总的是:每一天全球关注程度最高的那几个项目) 非常感谢捧场的 GitHub 用户!!!★本文面向哪些读者? 俺在博客上不止一次提到过,GitHub 是可以【免翻墙】使用的,而且这个网站/公司的管理层,相对来说还是比较靠谱的,不会轻易向咱们朝廷妥协。 因此,GitHub 非常适合用来搞一些敏感的活动(比如:提供翻墙工具、对朝廷/权贵的爆料、等等) 比如俺就利用 GitHub 开源了《太子党关系网络》,并提供下载。 如果你想用 GitHub 这个平台开发翻墙工具,本文值得你参考。 亦或者你也想效仿俺,在 GitHub 上进行反党活动/反政府活动,那本文更加值得你参考。★本文的必要性及重要性 先举个反面教材,来说明本文的必要性及重要性。 前些年有一款很知名的翻墙工具叫做“Shadowsocks”。这个工具是开源在 GitHub 上的,用的人很多。 但是该项目的作者 clowwindy 非常缺乏安全意识,【没有】做好身份的隐匿。结果捏,大约半年前,项目作者 clowwindy 被六扇门叫去喝茶。期间估计受到相当程度威胁恐吓,以至于 clowwindy 后来把 GitHub 上的项目关闭了。★阅读本文的前提——需要先了解哪些知识? 俺假定本文的读者已经了解如下几个方面的知识:版本管理系统的基本概念Git 的基本概念GitHub 的基本使用(至少已经注册过帐号)Git 客户端的基本使用Linux 或 Mac OS 命令行的基本使用常见翻墙工具的基本使用(不懂的同学,可以看俺博客上的各种教程)TOR 的使用(本文会重点聊到 TOR,俺写的 FAQ 在“这里”)★使用 GitHub 的两种方式◇B/S 方式——基于浏览器 这是最基本的使用方式。只要你注册过 GitHub 帐号,自然就知道如何用浏览器访问它。 这种基于浏览器的方式,有时候也称之为“Web 方式”。◇C/S 方式——基于客户端软件 除了浏览器方式,你还可以通过 Git 客户端软件来操作 GitHub 上的代码仓库。这种方式称之为“客户端软件方式”(为了打字省力,以下简称“Client 方式”)◇这两种方式的对比 B/S 方式最大的好处是:无需安装额外的软件(通常而言,你的系统中已经有默认的浏览器可供使用)。 B/S 方式的另一个好处是:GitHub 几乎所有的功能,都可以在浏览器界面上搞定。 但是 B/S 方式也有如下一些缺点: 1. 安全性 如果你经常在某个系统的某个浏览器上操作你的 GitHub 帐号。一旦该系统被入侵,很可能导致你的 GitHub 帐号也被入侵。 2. 易用性 有些大批量的操作,在 Web 界面上不太好搞。比如俺前几天上线的项目“太子党关系网络”,里面涉及到上千个文件(包括文本文件,图片文件)。如果通过 Web 界面进行批量操作(添加、删除、改名),就会很麻烦。 相比之下,“Client 方式”正好可以弥补“Web 方式”的这几个缺点。至于如何弥补,下面会聊到。★Client 方式支持哪些协议? 当你通过“client 方式”访问 GitHub 的服务器,可以走几种不同的协议。下面俺简要聊聊。◇Git 协议 此种协议,顾名思义,是 Git 专有的协议。除了用于 Git 客户端与服务端之间的通讯,其它场合用不到它。 注意:Git 协议本身是明文的(无加密)。◇HTTP/HTTPS 协议 HTTP 协议,大伙儿应该都熟悉,俺就不浪费口水了。 HTTPS 协议,通俗地说就是:“加密的 HTTP”。如今很多网站都开始支持 HTTPS(包括俺博客所在的 Blogspot,从去年10月也开始支持 HTTPS)。大伙儿对它应该也不陌生。◇SSH 协议 这个协议,对技术菜鸟可能比较陌生。这玩意儿,早先是 Unix 系统管理员用来远程管理服务器的。 SSH 是“Secure Shell”的缩写。显然,这玩意儿是加密的。★上述几种客户端协议的优缺点对比◇Git 协议 前面说了,此协议【没有】加密。如果你关注安全性,不应该用它。 首先,明文传输的协议,很容易遭受“旁路嗅探”(sniffer)——导致你丧失数据的【保密性】; 其次,明文传输的协议,很容易在传输过程中被修改(恶意篡改)——导致你丧失数据的【完整性】。◇HTTP 协议 明文的 HTTP 协议,同样【不】应该使用。理由同上,不再罗嗦。◇HTTPS 协议 HTTPS 是加密协议,避免了前两个的弊端。 它还有如下几个优点: 1
阅读更多