题 如何使用密码禁用某些用户的SSH登录?


在Linux(Debian Squeeze)上我想使用密码禁用某些用户(选定的组或除root之外的所有用户)的SSH登录。但我不想为他们使用证书禁用登录。

编辑: 非常感谢您的详细解答!出于某种原因,这在我的服务器上不起作用:

Match User !root
PasswordAuthentication no

......但可以很容易地被替换

PasswordAuthentication no
Match User root
PasswordAuthentication yes

145
2018-06-30 14:31




也许是因为你的缩进? - nil
值得一提的是,匹配下的那些行应该在文件的末尾 - zidarsk8
!root也不适合我。第二种方法就是诀窍。 - natenho
我见过的情况 Match User "!root,*" 做了这个工作。 - Roman Hocke


答案:


尝试 Match 在 sshd_config

Match User user1,user2,user3,user4
    PasswordAuthentication no

或者按组:

Match Group users
    PasswordAuthentication no

或者,如评论中所述,否定:

Match User !root
    PasswordAuthentication no

请注意,匹配是有效的 “直到另一个匹配行或文件末尾。” (缩进不重要)


156
2018-06-30 16:13



比较喜欢 Match user !root 对于这种情况 - 84104
太棒了,我不知道匹配语法。不过,我要提出的一个建议是,如果这是面向公众的服务器,我根本不允许通过SSH进行root登录。如果它是内部的话,可能不是一个大问题.. - Safado
@SpacemanSpiff那是什么a)强密码和b)denyhosts / fail2ban的用途。 - ceejayoz
@ deed02392如果你愿意,你可以认为密钥是真正非常强大的密码。 - ceejayoz
它是如此强大,它不在同一个球场,这是我的观点。对于root也应禁用密码身份验证,并且仅允许密钥登录。 - deed02392


Match 在 sshd_config 效果很好。你应该用 Match all 如果您使用openssh 6.5p1或更高版本,则结束匹配块。例:

PasswordAuthentication no
Match User root
PasswordAuthentication yes
Match all

12
2017-11-27 22:13





有几种方法可以做到这一点 - 首先,你可以在不同的端口上使用不同的配置完全运行第二个sshd守护进程 - 这有点像黑客,但有一些chroot工作它应该工作得很好。

此外,您可以允许密码验证,但锁定密码 除了一个用户之外的所有用户。密码锁定的用户仍然是 能够使用公钥进行身份验证。


1
2018-06-30 15:42





你可以直接转到/ etc / ssh / sshd_config文件并添加一行 允许 - > AllowUsers user1 拒绝---> DenyUsers user2

我们可以使用位于/ etc文件夹中的hosts.allow或hosts.deny文件来允许/拒绝特定主机集的登录


-1
2018-03-04 06:10