在Linux中允许或拒绝对特定用户或组进行SSH访问
几天前,我们教我们如何使用Restricted shell限制用户对Linux系统的访问。
一旦将用户置于受限模式下,他/他就什么都不能做,除了被允许做的事情。
当我们要允许特定用户仅执行一组特定命令时,这将很有帮助。
在本教程中,我们将了解如何在Linux中允许或者拒绝对特定用户或者组的SSH访问。
允许或者拒绝SSH访问Linux中的特定用户或者组
openSSH默认配置文件有两个指令,用于允许和拒绝对特定用户或者组的SSH访问。
允许SSH访问用户或者组
首先,我们将了解如何允许特定用户(例如sk)进行SSH访问。
请注意,所有命令均应以root用户身份运行。
转到远程服务器,然后编辑sshd_config文件:
$sudo vi /etc/ssh/sshd_config
添加或者编辑以下行:
AllowUsers sk
用用户名替换“ sk”。
我们还可以指定多个用户,如下所示。
AllowUsers sk theitroad
要允许整个组,例如说root,请添加/编辑以下行:
AllowGroups root
那些在“ root”组中的人可以ssh到远程服务器。
保存并退出SSH配置文件。
重新启动SSH服务以使更改生效。
$sudo systemctl restart sshd
现在,允许用户sk,theitroad或者“ root”组下的所有用户ssh进入远程服务器。
其他用户(sk,theitroad和“ root”组的用户除外)不能。
如果我们尝试使用任何一个不允许用户使用ssh到远程服务器,我们将收到以下错误消息:
Permission denied, please try again.
现在,让我们继续看看如何拒绝/禁用对特定用户或者组的ssh访问。
拒绝对用户或者组的SSH访问
要禁用或者拒绝对任何用户或者组的SSH访问,我们需要在远程服务器的sshd_config文件中添加/编辑以下指令。
要拒绝对名为“ sk”的特定用户的SSH访问,请编辑sshd_config文件:
$sudo vi /etc/ssh/sshd_config
在sshd_config文件中添加/编辑以下行。
DenyUsers sk
同样,要拒绝SSH对多个用户的访问,请指定用户名,并用空格分隔,如下所示。
DenyUsers sk theitroad
要拒绝对整个组(例如root)的SSH访问,请添加:
DenyGroups root
保存并退出ssh配置文件。
重新启动ssh服务以使更改生效。
$sudo systemctl restart sshd
如果我们尝试使用拒绝的用户SSH到服务器,例如sk:
ssh Hyman@theitroad
我们将收到以下消息:
Hyman@theitroad's password: Permission denied, please try again. Hyman@theitroad's password:
更重要的是,我们也应该禁用Root用户登录。
就安全性而言,根ssh访问被认为是不良做法。
要禁用root ssh登录,请编辑sshd_config文件:
$sudo vi /etc/ssh/sshd_config
找到以下行,取消注释,并将其值设置为no。
PermitRootLogin no
重新启动SSH服务。
我们刚刚禁用了ssh root用户登录。