云网牛站
所在位置:首页 > Linux教程 > 在Linux系统中允许或拒绝SSH访问特定用户或组的方法

在Linux系统中允许或拒绝SSH访问特定用户或组的方法

2019-02-27 09:47:39作者:符天稿源:云网牛站

openSSH默认配置文件有两个指令,允许和拒绝对特定用户或组的SSH访问,本文所要介绍的内容是允许或拒绝在Linux系统中对特定用户或组的SSH访问。一旦我们将用户置于限制模式,他就无法做任何事情,除了他被允许做什么,当你希望允许特定用户仅执行一组特定命令时,该方法就能用上了。

在Linux系统中允许或拒绝SSH访问特定用户或组的方法

 

一、允许SSH访问用户或组

首先,我们将看到如何允许特定用户的SSH访问(在Ubuntu 18.04系统中启用SSH登录的方法),例如ywnz。

请注意,所有命令都应以root用户身份运行。

转到远程服务器,然后编辑sshd_config文件:

$ sudo vi /etc/ssh/sshd_config

添加或编辑以下行:

AllowUsers ywnz

注:请将“ywnz”替换为为的用户名,你还可以指定多个用户,如下所示:

AllowUsers ywnz ywnz-1

注:多出了一个ywnz-1用户。

要允许整个组(例如root)添加/编辑以下行:

AllowGroups root

处于“root”组的人可以ssh到远程服务器。

保存并退出SSH配置文件,重启SSH服务以使更改生效:

$ sudo systemctl restart sshd

现在,用户ywnz,ywnz-1或“root”组下的所有用户都可以ssh到你的远程服务器,其他用户则不能。

如果你尝试使用任何一个非允许用户ssh到远程服务器,你将收到以下错误消息:

Permission denied, please try again.(即许可被拒绝,请再试一次。)

至此,允许SSH访问用户或组目的达到了。现在,让我们继续看看如何拒绝/禁用对特定用户或组的ssh访问。

 

二、拒绝SSH访问用户或组

要禁用或拒绝对任何用户或组的SSH访问,你需要在远程服务器的sshd_config文件中添加/编辑以下指令。

要拒绝对名为“ywnz”的特定用户的SSH访问,请编辑sshd_config文件:

$ sudo vi /etc/ssh/sshd_config

在sshd_config文件中添加/编辑以下行:

DenyUsers ywnz

同样,要拒绝对多个用户的SSH访问,请指定空格分隔的用户名,如下所示:

DenyUsers ywnz ywnz-1

要拒绝对整个组(例如root)的SSH访问,请添加:

DenyGroups root

保存并退出ssh配置文件,重新启动ssh服务以使更改生效:

$ sudo systemctl restart sshd

如果你尝试使用被拒绝的用户ssh到服务器,例如ywnz:

ssh ywnz@192.168.1.150

你将收到以下消息:

ywnz@192.168.1.150's password: 

Permission denied, please try again.

ywnz@192.168.1.150's password:

至此,拒绝SSH访问用户或组目的达到。

当然,你也应该禁用root用户登录,在安全性方面,root ssh访问被认为是一种不好的做法,参考VPS安装Debian后如何禁用root SSH登录一文。

要禁用root ssh登录,请编辑sshd_config文件:

$ sudo vi /etc/ssh/sshd_config

找到以下行,取消注释,并将值设置为no:

PermitRootLogin no

然后重启SSH服务,至此,你已经禁用了ssh root登录。

 

相关主题

在Linux系统下更改或更新SSH密钥密码的方法

精选文章
热门文章