我们现有的 GNU/Linux 中的无密码身份验证机制是在客户端中创建 ssh-keygen 并将客户端的公钥复制到服务器,并且服务器可以在没有密码的情况下从客户端进行身份验证。
我的问题是,
我们可以通过将服务器的公钥放在客户端来在服务器(我们希望在没有客户端密码的情况下连接)中生成密钥对,而不是在客户端创建密钥对吗?
如果我们可以做到这一点,任何人都可以解释一下程序是什么?
答案1
简短回答
不。
长答案
您可以使用一些公开信息(公钥)来证明您的原因。此外。你不能使用服务器密钥:你就是你,它就是服务器。
公钥可以安全地被全世界所知。您的服务器会将其公钥告诉任何询问的人。
更长的答案
但是,如果我尝试解构你想要做的事情。我看到您正在努力让管理变得更容易。那么你有什么选择呢?
- 获取所有用户公钥并将其复制到服务器。它们可以全部存入一个帐户,也可以存入多个帐户。
- 为所有用户提供相同的私钥。 (这可能是您想要想到的。)这样服务器就拥有一个公钥。然而,没有办法区分用户。现在有一种方法可以撤销密钥(如果用户丢失了密钥),而无需为所有人撤销密钥。
- 让系统管理员为用户创建公钥和私钥。然后,您必须安全地向用户获取私钥(例如,将笔记本电脑带到 IT 支持办公室,并安装密钥)。用户将此密钥用于任何其他目的也是不安全的(因为您不应该信任 IT 支持人员以及与他们无关的东西)。