【服务器管理】禁止指定用户使用密码登录服务器

前言

登录服务器通常会采用“用户名-密码”和“ssh密钥”这两种方案中的一种,而在调研到的大多数观点中,都认为密钥比密码更加安全。
在管理服务器时,强制服务器用户均使用密钥登录应该是更为安全的一种管理方案。
但这种方案在已经有大量用户使用了密码登录,或是大多数用户不熟悉密钥登录的情形下会比较难以实施。

退一步来说,可以仅限制服务器上的特定用户(如管理员用户)或具有特定权限的用户(如sudo用户)使用密钥登录,另大多数普通用户自行选择自己的登录方案,从而减少管理过程中和人员打交道时的麻烦。

任务:禁止指定用户使用密码登录服务器

在ssh中,可以通过在配置文件/etc/ssh/sshd_config中添加Match实现对于指定用户的过滤,
另一方面,可以通过修改配置文件中的PassworAuthentication选项实现禁用/启用密码登录。
根据需求不同,可以作以下两种修改↓

  1. 禁止指定用户使用密码登录
    在配置文件末尾添加

    Match User [用户名,如果想取非可在用户名前面加!]
        PassworAuthentication no
    
  2. 禁止指定用户组内的用户使用密码登录
    在配置文件末尾添加

    Match Group [用户组]
        PassworAuthentication no
    

完成修改后执行sudo systemctl reload ssh即可。

特别注意

配置文件中有提到对于PassworAuthentication选项的修改,具体写法为:

# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no

在这个位置进行修改只能选择允许/禁止全部用户使用密码登录,即只能够保持原文不动,或者修改为:

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
#PermitEmptyPasswords no

如果在这里添加Match之类的,执行sudo systemctl reload ssh时会报错。
想要进行按照上面提到的修改方式进行正确修改,必须要在配置文件末尾进行

posted @ 2022-10-04 22:57  TheError  阅读(94)  评论(0编辑  收藏  举报