如何禁用 sshd 中的所有身份验证?

如何禁用 sshd 中的所有身份验证?

有一个问题我完全找不到答案:如何配置 sshd,以便任何人都可以自由地通过 SSH 进入设备,而无需密码或密钥验证?目标是允许任何人运行“ssh user@host”并进入设备,而无需提供密码或配置任何密钥。这可能吗?

在有人问之前,我非常清楚这在实践中是一个坏主意,然而,这纯粹是为了我用于学习目的的沙盒服务器。

答案1

免责声明: 我绝不会建议这样做。

我假设这是一个 LAN 系统,我希望不是一个互联网系统,但您可以创建一个没有密码的用户并在 OpenSSHd 配置中启用以下选项:

PermitEmptyPasswords yes

要删除用户的密码,可以使用-dpasswd。

passwd -d username

SSH 密钥的正确使用方法

您为自己生成一个 SSH 密钥对,生成方式取决于您的客户端。对于 Linux,它是ssh-keygen。您可以在生成密钥时使用空密码,这样您登录时就不必输入密码。

在您的服务器中,您可以将公钥 (id_rsa.pub) 存储在通常位于用户.ssh目录中的 authorized_keys 文件中的一行中。可能需要创建此文件。(对于单个密钥,将 id_rsa.pub 作为 ~/.ssh/authorized_keys 复制到服务器应该就足够了)。

私钥文件永远不应公开发布,但可以发布给您希望访问此用户@机器的任何人。

相关内容