在Linux中允许或拒绝对特定用户或组进行SSH访问

时间:2020-03-21 11:42:38  来源:igfitidea点击:

几天前,我们教我们如何使用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用户登录。