为什么 git 身份验证通过 SSH 密钥进行?

为什么 git 身份验证通过 SSH 密钥进行?

标题中有问题,但让我详细说明一下。排除 git CLI 上的 ID/密码方法,我们生成 SSH 密钥并将公钥添加到远程服务器。为什么我们没有无 SSH 的公钥加密方法?我们甚至没有连接到远程机器的终端,我们甚至不需要连接远程机器的终端(是吗?),那么为什么它被命名为 SSH 密钥呢?仅仅是命名约定还是其他什么?这背后的历史是什么?

答案1

正如一个 StackOverflow 答案所说(在评论中提到),在 Git 历史的早期,ssh 协议具有支持对后端存储库的读写访问以及强加密身份验证和加密的优点。

ssh 的另一个好处是它允许独立于您的部署软件来管理/替换密钥。即,您的部署脚本不必知道如何从某处读取身份验证令牌并将其传递到服务器。

当然还有其他具有类似功能的协议,但这些是 git+ssh 在过去 10 多年中得到如此广泛使用的原因之一。

相关内容