有很多关于如何使用 SSH 密钥建立与 VPS 的连接的材料(高质量文章的示例)。简而言之,使用ssh-keygen实用程序,您需要生成一对密钥(公钥和私钥),然后以某种方式将打开的密钥上传到 VPS。
根据该视频的解释,
像往常一样,我们通过不安全的通道(即互联网连接)传输数据包。我们使用公钥加密每个数据包,并使用私钥进行解密。公钥是公开的,万一有人拿到了也不可怕。它可以加密消息,但不能解密。
连接中的每个参与者都会创建一个公钥-私钥对,然后双方交换各自的公钥。
从逻辑角度来看,第一点难以理解的是,如果说密钥交换,为什么在本地机器和 VPS 上有一份公钥副本?原来客户端和服务器都用同一个公钥加密数据包?
但最重要的是:我们的说明中哪里提到了为服务器创建密钥对?我们在本地计算机上创建密钥并将公共密钥上传到服务器,以便可以解密来自服务器的响应。但是,如果没有私钥,服务器如何解密来自客户端的消息呢?
由于数据不可能以明文形式发送到服务器,因此我们只能断定VPS最初有私钥。但它与我们之前创建的公钥匹配吗?