Git的推送和拉取是否加密?

21

您拥有凭据来防止未经授权的人访问您的git存储库服务器(或者对于Github、Bitbucket等),但这只是防止某人在没有适当授权的情况下执行拉取、推送等操作。

然而,拉取、推送等操作的内容是否以任何方式进行了加密,以防止他人嗅探数据包并从您的存储库获取敏感代码?如果存在此类功能,如何启用它?

2个回答

8

Git使用多种协议。在此处了解更多信息:https://git-scm.com/book/ch4-1.html

SSH是一种安全的协议,因此您可以使用它。
正如您所看到的,在传输内容之前的最后一步是加密,反之亦然。 enter image description here


enter image description here


谢谢!我注意到Bitbucket不需要生成SSH密钥对,而是可以选择密码。这是否意味着在这种情况下没有加密? - Radu Ionescu
您可以将SSH密钥添加到Bitbucket,而不是使用密码的HTTP/HTTPS。 - CodeWizard
2
HTTPS通过ssh进行加密。HTTP没有加密。 - CodeWizard
当然。很高兴能够帮助你。 - CodeWizard
3
HTTPS不使用ssh,而是使用SSL/TLS。 - 1615903
显示剩余2条评论

7

Git可以使用多种不同的网络协议进行通信,包括HTTP、HTTPS、SSH和Git自己的协议。HTTPS和SSH提供加密功能,而HTTP和Git协议则不提供。大多数知名的Git提供商(例如GitHub)使用HTTPS,因此是加密的。如果您正在设置内部环境,则可以在此处找到实施HTTPS或SSH的完整说明:

https://git-scm.com/book/en/v2/Git-on-the-Server-Getting-Git-on-a-Server


我阅读了您的链接,但只找到了登录协议设置。例如,您有FTPS、SFTP和FTP over SSH,它们之间有很大的区别。类比一下,您可能会像在FTP传输中一样推送或拉取大量数据。在安全方面,命令和数据通道是如何处理的?它们是相同的还是每个通道都有不同的安全级别?您能设置它们吗? - Radu Ionescu
这个链接是章节中的一页,描述了设置Git服务器的各个部分。阅读所有页面都是值得的,但HTTP/web设置的说明从第4.7页开始。 "安全级别"完全由协议确定,因此,例如,您可以使用诸如证书固定之类的功能来提高安全性。这些更改将在操作系统或Web服务器级别进行,而不是在Git内部进行。 - Stefan
就你的FTP示例而言,通过SSH使用Git大致相当于SFTP——它启动一个SSH会话并在远程主机上运行命令。 - Stefan

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