SSH:使用服务器私钥而不是客户端公钥的登录方法?

SSH:使用服务器私钥而不是客户端公钥的登录方法?

就像AWS EC2风格一样,我如何设置人们通过服务器的私钥(PEM?)通过 SSH 进入我的服务器,而不是我们将客户端公钥上传到服务器?

想法是将服务器的私钥(.pem?)共享给客户端,这样拥有该密钥的人就可以立即通过 SSH 访问服务器。这样,每当出现新的客户端用户/机器时,我(作为服务器管理员)就不会产生任何开销。

这也意味着,只要我们拥有该密钥,我们就可以从“任何”客户端计算机连接到服务器,即使它是新的。(这也可能允许我们去度假而无需携带特定的笔记本电脑,只要我们有钥匙和一台随机计算机。:D)

请问如何实现这种(类似AWS)方法?

答案1

没有人共享私钥。正如@SatōKatsura 提到的,您指的是客户端证书身份验证。有一个 CA、域的或其他的,它对所有用户的公钥进行签名。

这是亚马逊的描述

创建密钥对

您可以使用 Amazon EC2 创建密钥对。有关更多信息,请参阅使用 Amazon EC2 创建密钥对。

或者,您可以使用第三方工具,然后将公钥导入 Amazon EC2。有关更多信息,请参阅将您自己的公钥导入到 Amazon EC2。

所有私钥始终保密。

附录:

关于如何设置 SSH 客户端证书身份验证的讨论可能过于复杂,无法在此介绍。不过Red Hat有非常详细的解释这里

如果需要的话,我可以尝试总结一下整个过程。

答案2

这违反了非对称加密(又名公钥加密)背后的思想,因此使用 RSA 密钥(RSA=非对称加密)不可能实现这一点。

为什么不简单地使用(很长)密码?这将实现相同的效果。

您可以检查其他身份验证方法,ssh但它们没有理由执行比 RSA 安全性更低的操作。

相关内容