暑假的时候被我爸将我塞到培训班学了点东西,老师说学编程,先要学会 git emacs linux 等等这是真的吗?自从我发现了这里有趣的哥哥姐姐,就对计算机编程产生了兴趣,我这几天在实践。
还有个很奇怪的问题,为什么我上传了我自己的 gpg 钥匙到公钥服务器,有时候用搜索命令的到有时候搜不到?
1
xiri 2019-01-14 03:31:37 +08:00 via Android
用什么 emacs,vim 大法好!(:逃
|
2
whileFalse 2019-01-14 08:46:34 +08:00
git 也算用了四五年了,没用过 gpg ……
|
3
frylkrttj OP @whileFalse 咦。。。不用 gpg 保护 git 传输过程吗?
|
4
whileFalse 2019-01-14 09:17:29 +08:00
@frylkrttj 保护传输过程的是 https 和 ssh。前者不需要证书,后者使用的是 ssh 证书。
gpg 是用来做代码签名的。 https://ubuntuforums.org/showthread.php?t=1402933 |
5
frylkrttj OP @whileFalse 不用 gpg 要是别人也知道你 git 仓库地址怎么办?
|
7
yuikns 2019-01-15 13:23:17 +08:00
Linux 是很好的操作系统。
git 是很好的版本管理工具。 emacs 是不错的编辑器。虽然我用 vim,textmate 还有 jetbrain 全家桶。 但无论哪个,都是学习编程的既不充分又不必要前提。程序就是程序,上面那一切都是有趣的工具,是在未来某个时候可能提高你效率的重要手段(除了 emacs )。但不要因为一时的卡住而忘记学代码本身。 |
8
julyclyde 2019-01-15 15:11:17 +08:00
gpg 是对 commit 进行签名的吧。和 git 服务器没啥关系
|
11
yuikns 2019-01-16 06:23:17 +08:00
@frylkrttj
没懂... https://s2.ax1x.com/2019/01/16/FzvrVS.png 不能创建私有仓库?现在免费用户也可以创建私有库了吧。 @whileFalse 已经转的帖子已经说得很明白了。此外,网上还可以找到很多说明 https://security.stackexchange.com/questions/120706/why-would-i-sign-my-git-commits-with-a-gpg-key-when-i-already-use-an-ssh-key-to 首先介绍两个概念。 authorization 是 “身份校验”,它就好像以房卡。有了房卡。马蓉可以进酒店,王宝强也可以。 签名 (signature) 是密码学中的一个概念。 在非对称加密算法中,公钥和私钥都是一个大素数,它们的不同名称只是公钥是给所有人知道的,而私钥只能自己知道。本质其实是一样的。这对素数可以通过一个加密一段内容,通过另一个解密。 若别人通过公钥加密,得到一个东西,我们称为密文,我们通过私钥解密。这个被称为“加密”,理论上,只有掌握那个私钥的我才能读取那段密文。这个让那个消息作为隐私。 反之,要是我用私钥加密一段内容,而公众使用公钥解密,这个被称为签名。它的好处是证明这段内容是我发出的,而不可能是任何其它人。 不过,RSA 的加密和解密都很复杂,而且我们有时候并不需要那么复杂,那么我们可以基于散列( hash )生成一个信息摘要( message digest )。它长度会比较短,我们不能从摘要中生成原文,但是我们可以用它检查原文的正确性和完整性。 比如我们准备一个王宝强的摘要,照片,身高,声音等等。那么宋 JJ 跑马蓉房间,我们抓住他,然后和摘要对比,那么很容易可以证明进马蓉房间的不是王宝强。 简单翻译下上面那个链接的内容,作为补充说明: 当你使用 ssh 密钥对 gh 身份验证后,验证信息本身不会存储起来。github 只是临时提供了一条让你读写的途径,但不会和任何不在 github 的人证明任何(身份相关的)信息。 当你 gpg 签名一个 tag 后。这个 tag 就是这个库的一部分,它可以被 push 到其它仓库。因此,clone 这个库的别人也能很容易验证这是你签名的,然后就可以像相信你一样相信那个内容。 然而,对每个 commit 进行 gpg 签名是不必要的。但在发布带 gpg 签名的 tag 是明智的。它提供了一些明确的保证: + 这个代码若有问题和你有关 + 这个代码是你提交的 + 在你签名后,这个提交没有修改过 这个并不是说你干了这些事,而只是提供追踪和确认的一个正确方向。 |
12
yuikns 2019-01-16 06:26:54 +08:00
ssh/https 保证了传输的数据流是安全的。
github 上代码不想别人看到可以用私有库。即便免费账户也可以受限使用它。 gpg 干的是另外一些事情。如上一楼提到的。 |