主机如何知道在其中执行 ssh 的机器中的私钥

主机如何知道在其中执行 ssh 的机器中的私钥

用这个方法 ssh -i private key [电子邮件保护] 我说这是我的私钥,并且 ubuntu_A 将我的私钥与 Authorized_keys 中的公钥匹配。

我对 ssh-copy-id 方法感到困惑

从 ubuntu_B 我执行了 ssh-copy-id 1.2.3.4 并将我的公钥复制到 authorized_key 文件中

现在当我执行 ssh 1.2.3.4 时我可以登录到 ubuntu_A 通过这种方法,ubuntu_A 如何知道 ubuntu_B 中的私钥,我如何看到它正在验证私钥

答案1

您的帖子非常不清楚(您没有定义 ubuntu_b)或者您从谁和哪里登录,但是你对 SSH 的理解似乎非常不准确- 我想,如果你能更好地理解,很多困惑就会消失。以下是一些基本原理 -

  • 私钥是私人的。公钥是公开的。私钥不会通过 SSH 在网络上传输。

  • “ssh -i私钥.[电子邮件保护]“可以分解如下 - Ubuntu_A 是用户名Private.key 已传递到 SSH 客户端因此它可以派生出适当的代码,并将其传输给 1.2.3.4 重要的是,私钥不会传输给 B。

  • 公钥/私钥技术采用单向加密。如果你知道公钥,就可以解密消息,但无法推导出私钥。

因此,“ubuntu_b”不知道“ubuntu_a”的私钥 - 它只知道公钥。将公钥放入“ubuntu_b”的authorised_keys文件中的行为足以说明ubuntu_b信任ubuntu_a - 而这正是ssh-copy-id所做的。不使用私钥

通过非数学类比 - 您可以发布您的银行帐号(公钥等价物) - 就像发票上常见的那样。这将允许人们向您付款(如果他们将您的帐户添加到他们可以付款的人的列表中,这类似于authorised_keys文件)。它不允许这些人从您的帐户中取钱。为此,您需要一个登录名和密码(私钥)。

相关内容