标题中有问题,但让我详细说明一下。排除 git CLI 上的 ID/密码方法,我们生成 SSH 密钥并将公钥添加到远程服务器。为什么我们没有无 SSH 的公钥加密方法?我们甚至没有连接到远程机器的终端,我们甚至不需要连接远程机器的终端(是吗?),那么为什么它被命名为 SSH 密钥呢?仅仅是命名约定还是其他什么?这背后的历史是什么?
标题中有问题,但让我详细说明一下。排除 git CLI 上的 ID/密码方法,我们生成 SSH 密钥并将公钥添加到远程服务器。为什么我们没有无 SSH 的公钥加密方法?我们甚至没有连接到远程机器的终端,我们甚至不需要连接远程机器的终端(是吗?),那么为什么它被命名为 SSH 密钥呢?仅仅是命名约定还是其他什么?这背后的历史是什么?
正如 StackOverflow 的一个回答所说(在评论中提到),在 Git 的早期历史中,ssh 协议的优点是支持对后端存储库的读写访问,以及密码学上强的身份验证和加密。
ssh 的另一个好处是它允许独立于您的部署软件来管理/替换密钥。即,您的部署脚本不必知道如何从某处读取身份验证令牌并将其传递到服务器。
当然还有其他具有类似功能的协议,但这些是 git+ssh 在过去 10 多年中得到如此广泛使用的原因之一。