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

tri*_*nth 8 linux ssh ssh-keys

这是一个我完全找不到答案的问题:如何配置 sshd 以便任何人都可以在没有密码或密钥身份验证的情况下自由 SSH 进入盒子?目标是允许任何人运行“ssh user@host”并进入盒子,而无需提供密码或配置任何密钥。这甚至可能吗?

在有人问之前,我很清楚这在实践中是一个坏主意,但是,这纯粹是针对我用于学习目的的沙箱服务器。

Dev*_*von 13

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

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

PermitEmptyPasswords yes
Run Code Online (Sandbox Code Playgroud)

要从用户中删除密码,您可以使用-dpasswd。

passwd -d username
Run Code Online (Sandbox Code Playgroud)

使用 SSH 密钥的正确方法

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

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

私钥文件不应公开发布,但可以发布给您希望访问此 user@machine 的任何人。