为什么在git中需要使用SSH密钥?

9

我对git几乎没有什么了解。我一直在跟随教程,其中有一个人生成了ssh密钥,这是我第一次接触到它。 在此之前,我一直按照git中写的命令或通过JetBrains ide直接添加。 我知道应该加密连接,但当上传到GitHub时,这意味着我正在公开我的代码。那为什么要进行加密?为什么要在cmd中做这些麻烦的事情?


1
引用使用SSH连接GitHub。通过SSH密钥,您可以在每次访问时无需提供用户名或密码即可连接到GitHub。 - Imran Ali
那HTTPS呢? - Alpit Anand
因为你想获取正确的存储库版本,即使有人正在试图用他们(恶意)的版本替换它。 - Mad Physicist
非常抱歉,请耐心等待,但是需要ID密码。 - Alpit Anand
2
@MadPhysicist 连接加密和身份验证与保护存储库内容无关,因为它们是阻止第三方访问的手段,但如果他们有访问权限,你使用ssh也不能神奇地防止克隆/拉取恶意内容。 - Lasse V. Karlsen
1个回答

4
为什么在git中需要SSH密钥?
SSH密钥用于识别与git远程库进行交互的用户。
我知道它应该加密连接,但是在上传到GitHub时,这意味着我的代码是公开的。
不一定,GitHub上有私有存储库。此外,还有其他托管提供商。
为什么要在cmd中进行所有这些麻烦?
使用SSH身份验证时,与远程交互时无需输入凭据。

1
如果您没有被提示输入凭据,那么显然您已经是认证过的用户了。 - 1615903
1
我理解所有的答案。但是,如果我想将一个公共repo克隆到我的服务器上,为什么需要SSH(有时候)呢?毕竟,这是一个-公共-的repo。这可能是一个安全问题吗——防止在传输过程中更改代码?这似乎很合理,也是我能想到的唯一解释。但如果是这样,为什么GitHub不全球强制执行呢? - marko-36
1
@Marko36 我不知道在克隆公共存储库时需要SSH的任何情况。 - 1615903
1
@1615903 https://github.com/heroku/node-js-sample 需要使用SSH进行克隆。至少在我的情况下是这样的。如果您需要,我可以重现并提供一些截图。 - marko-36
@Marko36,感谢你的帮助,现在已经很晚了,但我已经全部搞定了。 - Alpit Anand
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接