编辑:

编辑:

我最近才开始使用 Google Cloud Platform,并且出于多种目的使用 SSH。由于安全性在此项目中非常重要,因此我正在尝试弄清楚 SSH 身份验证的工作原理(特别是在 GCP 中)。我按照 Google 的说明生成 RSA 密钥并将其上传到云中的实例:

  1. 我正在使用 PuTTyGen 生成公钥/私钥
  2. 我正在将公钥上传到实例
  3. 通过在客户端加载私钥文件来打开SSH连接。

我感到困惑的是,我确信服务器使用其私钥进行密钥交换,但实际上上传的是生成的公钥。

有人可以分享他/她的知识或解释密钥交换如何运作的文章链接吗?

答案1

如果你用谷歌搜索你的问题,你会在第一个链接中找到解释。例如这里

私钥必须只有您自己知道。

私钥由客户保管,应绝对保密。

您放置在所有需要进行身份验证的设备上公钥。

相关的公钥可以自由共享,不会产生任何负面影响。

他们还对身份验证的工作原理进行了简要说明。

当客户端尝试使用 SSH 密钥进行身份验证时,服务器可以测试客户端是否拥有私钥。如果客户端可以证明其拥有私钥,则会生成 shell 会话或执行请求的命令。

编辑:

似乎在 ssh 协商过程中,Diffie-Hellman 算法会创建另一个密钥对,该密钥对实际上用于加密流量。阅读线程以获得更完整的解释。

更多解释这里

相关内容