linux怎么限制用户ssh登录允许sftp登录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux怎么限制用户ssh登录允许sftp登录相关的知识,希望对你有一定的参考价值。

在linux中出于安全的需要,我们会禁止某些用户SSH登陆系统进行操作。我这里以centos操作系统为例记录下如何进行处理。
1、打开sshd的配置文件
vi /etc/ssh/sshd_config2、修改该配置文件,增加或修改如下行
# 禁止用户user1登陆,多个空格分隔DenyUsers user1 # 禁止用户组group1的所有用户登录,多个空格分隔DenyGroups group13、保存配置后,重启sshd
/etc/rc.d/init.d/sshd restart 完成上面的配置后,就可以禁止用户或用户组的用户进行登录了,第2步中的两个是可以只填一个的,可以根据需要进行调整。配置完毕后,在其他linux机器上使用如下命令进行测试:
# 使用ssh测试[root@ServerA ~]# ssh user1@192.168.1.168user1@192.168.1.168's password: Permission denied, please try again. # 使用sftp测试[root@ServerA ~]# sftp user1@192.168.1.168user1@192.168.1.168's password: Permission denied, please try again. 可以看到,确实被系统禁止了,从而也就完成了我们想要的控制了。但这个有一个缺陷是,无法禁止只允许sftp而不允许ssh,如果要这样做,估计只能够单独搭建ftp服务器,比如vsftp,后续再考虑这个。
参考技术A Linux系统可以通过sshd的配置项,禁止某些用户sftp登陆,方法如下:
1、打开sshd的配置文件
vi/etc/ssh/sshd_config

2、修改该配置文件,增加或修改如下行
# 禁止用户user1登陆,多个用户空格分隔
DenyUsers user1
# 禁止用户组group1的所有用户登录,多个空格分隔
DenyGroups group1
3、保存配置后,重启sshd
/etc/rc.d/init.d/sshd restart
#完成上面的配置后,就可以禁止用户或用户组的用户进行SFTP登录
4、配置完毕后,在其它linux机器上使用如下命令进行测试
# 使用ssh测试
[root@ServerA ~]# ssh user1@192.168.1.168
user1@192.168.1.168's password:
Permission denied, please try again.
# 使用sftp测试
[root@ServerA ~]# sftp user1@192.168.1.168
user1@192.168.1.168's password:
Permission denied, please try again.
#Permission denied 授权被拒绝,已经实现禁用该用户使用sftp

Linux 禁止用户或 IP通过 SSH 登录

限制指定用户通过指定IP SSH 登录

1.只允许指定用户进行登录(白名单):

在 /etc/ssh/sshd_config 配置文件中设置 AllowUsers 选项,(配置完成需要重启 SSHD 服务)格式如下:

AllowUsers    aliyun [email protected]            
# 允许 aliyun 和从 192.168.1.1 登录的 test 帐户通过 SSH 登录系统。
2.只拒绝指定用户进行登录(黑名单):

在/etc/ssh/sshd_config配置文件中设置DenyUsers选项,(配置完成需要重启SSHD服务)格式如下:   

DenyUsers    zhangsan aliyun    #Linux系统账户        
# 拒绝 zhangsan、aliyun 帐户通过 SSH 登录系统
或者
DenyUsers [email protected] 
# 拒绝 mayun 帐户且IP为25.12.15.2 通过 SSH 登录系统

限制 IP SSH 登录

除了可以禁止某个用户登录,我们还可以针对固定的IP进行禁止登录,linux 服务器通过设置 /etc/hosts.allow 和 /etc/hosts.deny这个两个文件,

hosts.allow许可大于hosts.deny可以限制或者允许某个或者某段IP地址远程 SSH 登录服务器.方法比较简单,具体如下:

1. vim /etc/hosts.allow, 添加

sshd:192.168.0.1:allow  #允许 192.168.0.1 这个 IP 地址 ssh 登录
sshd:192.168.0.1/24:allow #允许 192.168.0.1/24 这段 IP 地址的用户登录
技术图片

2.vim /etc/hosts.allow,添加

sshd:ALL # 允许全部的 ssh 登录 

技术图片

     hosts.allow 和hosts.deny 两个文件同时设置规则的时候,hosts.allow 文件中的规则优先级高,按照此方法设置后服务器只允许 192.168.0.1 这个 IP 地址的 ssh 登录,其它的 IP 都会拒绝。

 

以上是关于linux怎么限制用户ssh登录允许sftp登录的主要内容,如果未能解决你的问题,请参考以下文章

linux SFTP用户创建 不允许用户登录,并且连接只允许在制定的目录下进行操作

用ChrootDirectory限制SFTP登录的用户只能访问指定目录且不能进行ssh登录

root用户ssh可以登录,FileZilla sftp不能登录链接CentOS解决办法

Linux下sftp配置之密钥方式登录

Linux设置SFTP服务用户目录权限

Linux设置SFTP服务用户目录权限