6Gl免费翻墙网
首先,明文传输的协议,很容易遭受“旁路嗅探”(sniffer)——导致你丧失数据的【保密性】;6Gl免费翻墙网
其次,明文传输的协议,很容易在传输过程中被修改(恶意篡改)——导致你丧失数据的【完整性】。6Gl免费翻墙网
6Gl免费翻墙网
◇HTTP 协议
6Gl免费翻墙网
明文的 HTTP 协议,同样【不】应该使用。理由同上,不再罗嗦。6Gl免费翻墙网
6Gl免费翻墙网
◇HTTPS 协议
6Gl免费翻墙网
HTTPS 是加密协议,避免了前两个的弊端。6Gl免费翻墙网
它还有如下几个优点:6Gl免费翻墙网
1. 访客身份也可以使用6Gl免费翻墙网
即使你没有注册 GitHub 的用户,也可以通过 HTTPS 协议克隆某个项目6Gl免费翻墙网
2. 更容易穿透防火墙6Gl免费翻墙网
很多公司内网的防火墙会屏蔽大部分端口,但是 HTTPS 所用的 443 端口通常是允许通过的(没有屏蔽)。6Gl免费翻墙网
6Gl免费翻墙网
◇SSH 协议
6Gl免费翻墙网
与 HTTPS 类似,SSH 也是强加密滴。该协议提供了如下几个额外的好处:6Gl免费翻墙网
1. 提供了额外的认证方式6Gl免费翻墙网
对于 SSH 协议,GitHub 支持“公钥方式”(public key)的认证。当你设置好这种认证方式,就【不再需要】用你的帐号和密码,也可以操作你代码仓库。6Gl免费翻墙网
这样的好处是——万一你的系统被入侵,顶多泄露你的 key,但【不会】泄露你在 GitHub 的帐号密码。而且 key 被泄漏之后,你可以去你账户的配置界面,把已经泄露的 key 撤销掉。撤销之后,入侵者就算拿到这个 key,也无法再操作你的代码仓库了。6Gl免费翻墙网
2. 支持“项目级”颗粒度的控制6Gl免费翻墙网
通俗地说就是:你可以为不同的仓库配置不同的 SSH key。如此一来,一个 key 只能操作一个代码库。一旦 key 泄露,损失就小得多了。6Gl免费翻墙网
6Gl免费翻墙网
★如何用 SSH 方式操作 GitHub 的项目?
6Gl免费翻墙网
在 Git 客户端支持的这几个协议中,俺重点来说一下 SSH 协议的配置。6Gl免费翻墙网
以下配置以 Linux 环境来举例。6Gl免费翻墙网
6Gl免费翻墙网
◇1. 安装 openssh
6Gl免费翻墙网
大部分知名的 Linux 发行版,其官方的软件库中都已经内置了 openssh,你只需用该发行版提供的软件包管理器,一个命令就可以把 openssh 装好。6Gl免费翻墙网
6Gl免费翻墙网
◇2. 创建“公钥/私钥对”
6Gl免费翻墙网
使用如下命令创建:6Gl免费翻墙网
ssh-keygen -t rsa -b 4096 -f 文件路径 -C 邮箱地址
稍微解释一下:6Gl免费翻墙网
其中的 -t rsa 表示加密算法的类型是 RSA6Gl免费翻墙网
其中的 -b 4096 表示密钥是 4096 位/比特6Gl免费翻墙网
(请注意,不同加密算法的位数,没有可比性。对于 RSA 加密算法,如果你没有指定 -b 参数,则默认值是 1024;以目前的破解水平,2048 应该够安全了。为了保险起见,咱们这里创建 4096 比特的密钥)6Gl免费翻墙网
6Gl免费翻墙网
◇4. 密钥文件的存放
6Gl免费翻墙网
上述命令中的【文件路径】表示:【私钥】文件存放的位置。然后 ssh-keygen 会自动在这个路径末尾附加 .pub 作为【公钥文件】的路径。6Gl免费翻墙网
比如说:你输入的私钥文件路径是 ~/.ssh/xxxx 那么生成之后对应的公钥文件的路径就是 ~/.ssh/xxxx.pub6Gl免费翻墙网
如果你要创建不止一个“公钥私钥对”,要使用具有一定可读性的文件名,以免自己搞混了。6Gl免费翻墙网
【私钥文件】非常重要,【不要】泄漏给外人。6Gl免费翻墙网
(经热心读者推荐,补充一篇“保护私钥文件”文章,链接在“这里”),6Gl免费翻墙网
6Gl免费翻墙网
◇5. 在 GitHub 上指派密钥
6Gl免费翻墙网
GitHub 支持两种方式的 SSH key,分别是【用户级】和【项目级】。
3/6 首页 上一页 1 2 3 4 5 6 下一页 尾页
|