每个用户的 SSHd 限制

ale*_*xus 12 ssh

我需要限制某些用户,以便他们只能使用 ssh 密钥进行 SSH,而其他用户可以使用密钥或密码登录。

一个例子:

我希望 root 用户能够使用密钥远程登录(通过 sshd),因此不会接受密码(即使密码正确)

对于其他用户(系统上的每个人),他们可以使用密钥和/或密码登录

我该怎么做?

Dev*_*tas 18

我想你想要的是“匹配用户”。您可以使用它来匹配用户名,然后缩进一系列专门适用于该用户的配置设置。

Match User Joe
  PasswordAuthentication no

Match User Jane
  PasswordAuthentication yes
Run Code Online (Sandbox Code Playgroud)

我有时会使用它来为客户端设置仅 chroot SFTP 访问。

  • 请注意,并非所有设置都可以写入“Match”块中。有关详细信息,请参阅“man 5 sshd_config”。 (2认同)

小智 0

/etc/sshd/sshd_config我要做的就是这样设置:

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

只是为了额外的安全性并避免 root 密码被锁定(它只允许 root 使用密钥登录)

我会使用AllowGroups而不是AllowUser,因为对我来说,将用户添加到组而不是添加到组会更方便,sshd_config但这可能取决于您的个人喜好。