gpt4 book ai didi

ssl - 谁能在 Github 或 Bitbucket 的上下文中解释 SSH、SSL、HTTPS?

转载 作者:太空宇宙 更新时间:2023-11-03 13:54:42 25 4
gpt4 key购买 nike

我对 IT 了解不多,从事软件开发已有 3 年。我用过 Github 和 Bitbucket 的版本控制,但我真的不知道 SSH、SSL、HTTPS 是如何工作的。任何人都可以在 Github 等云服务的版本控制上下文中解释它们吗?为什么不使用 TLS?用户案例示例将是最有帮助的。高水平就好。

最佳答案

首先,虽然许多人认为 SSH 依赖于 SSL,但事实并非如此:它是一个完全不同的协议(protocol)。 OpenSSH 依赖于 OpenSSL 的事实可能是造成这种混淆的原因之一(而事实上 OpenSSL 可以做的比 SSL 多得多)。

其次,TLS 本质上是 SSL 的更新版本,而 HTTPS 是基于 SSL/TLS 的 HTTP。您可以在 "What's the difference between SSL, TLS, and HTTPS?" on Security.SE 中阅读更多相关信息,例如。

主要区别之一(在 GitHub 和 Bitbucket 的上下文中)与身份验证机制有关。从技术上讲,密码和公钥身份验证都可以与 SSL/TLS 和 SSH 一起使用或在 SSL/TLS 和 SSH 之上使用,但这样做的方式却大不相同。现有的库和工具支持也很重要。

GitHub(带有 Git)依赖 SSH 公钥进行身份验证(这样您就不必每次都存储或使用密码)。

SSH 中的公钥身份验证使用“裸 key ”,而您需要用于 SSL/TLS 的证书(在 99.9% 的情况下,这将是 X.509 证书)。 (证书通过将它们签名在一起来将身份绑定(bind)到公钥。)GitHub 必须使用或设置 CA,或者可能使用各种技巧来接受自签名的客户端证书。所有这些在技术上可能都是可行的,但这会增加学习曲线(并且可能也难以干净地实现,尤其是在使用自签名证书技巧的情况下)。

目前,GitHub 只允许您在您的帐户中注册您的 SSH 公钥并使用它进行身份验证。许多开发人员(至少来自 Git 方面)无论如何都会熟悉 SSH 公钥。

从历史上看,基于 SSH 的 Git 一直有效,而对 HTTP 的支持后来才出现。

相比之下,Mercurial 最初主要是一个基于 HTTP 的协议(protocol)。因此,更自然地使用 HTTPS 上可用的内容(如果 X.509 证书被认为太复杂,将排除使用它们的可能性)。据我所知,也可以通过 SSH 访问 Mercurial。

在这两种情况下(Git 和 Hg),连接期间提供的 SSH 公钥是让系统对用户进行身份验证的工具。在 GitHub 或 Gitlab 上,你总是以 SSH 用户 git 的身份连接,但你使用哪个 key 实际上决定了系统中的用户。 (与 Bitbucket 上的 Hg 相同:ssh://hg@bitbucket.org/...。)

关于ssl - 谁能在 Github 或 Bitbucket 的上下文中解释 SSH、SSL、HTTPS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22360404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com