如何拒绝 root SSH 登录 + 需要用户的 SSH 密钥?

Tom*_*man 5 server ssh root login

在阅读了这个类似的问题后,我不清楚如何要求 SSH 密钥user,同时拒绝 SSH 访问root(密钥或密码)。如果我需要成为 root,我将在以用户身份登录后使用 sudo。

我知道如何要求 SSH 密钥:

PermitRootLogin without-password
Run Code Online (Sandbox Code Playgroud)

我知道如何禁止用户“root”登录:

PermitRootLogin no
Run Code Online (Sandbox Code Playgroud)

我知道如何将用户列入白名单:

AllowUsers user
Run Code Online (Sandbox Code Playgroud)

我不知道如何把这一切放在一起(或者是否有必要? - SSH 密钥可能就足够了)。我通常会通过反复试验来解决这样的答案,但我担心我会把自己锁在这个服务器之外......

dob*_*bey 7

如果您想禁止密码登录,则只需PasswordAuthentication nosshd_conf服务器上设置即可。

我不太记得了,但我认为至少没有 root 登录是默认的。

尝试以系统上的任何用户~/.ssh/authorized_keys身份登录,如果没有禁用密码登录,他们将要求输入密码,无论是否设置了密码,或者 shell 是否可用。

我认为你想要的很简单:

密码认证 否
PermitRootLogin 否

这将禁止使用 ssh 密钥或密码进行任何 root 登录,并将要求用户使用有效密钥登录,如在该用户的~/.ssh/authorized_keys文件中包含公钥。