Linux openSSH 只能够使用SFTP 不能使用ssh登陆

本文介绍如何通过修改sshd配置文件实现用户仅能通过SFTP访问服务器的目标,并确保用户被限制在其个人目录内,无法访问其他目录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载地址 : http://blog.51cto.com/jin771998569/1067247

实施目标:

1. 用户只能通过sftp访问,不能登录SSH
2. 用户要被锁定在特定的目录下,没有读写其它目录的权限

 

下面开始:
首先修改sshd的配置文件:
#vim /etc/ssh/sshd_config

将该文件的末尾修改如下:
#Subsystem sftp /usr/lib/openssh/sftp-server
#该行(上面这行)注释掉
Subsystem sftp internal-sftp 
Match group sftp
#匹配sftp组,如为单个用户可用:Match user 用户名;  设置此用户登陆时的shell设为/bin/false,这样它就不能用ssh只能用sftp
ChrootDirectory /home/
#指定用户被锁定到的那个目录,为了能够chroot成功,该目录必须属主是root,并且其他用户或组不能写
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
#UsePAM yes
#该行(上面这行)同样注释掉,或者移到Subsystem sftp internal-sftp的上面

下面建立sftp组和一个测试用户user,该用户属于sftp组:
# groupadd sftp
# useradd -d /home/user -m -s /bin/false -g sftp user
# sudo passwd user

重启SSH服务 sshd:
# /etc/init.d/sshd reload    # 此处原文是ssh,我在centos里是sshd

此时,使用带有sftp功能的客户端软件,比如filezilla、flashfxp就可以用testuser使用sftp方式登录服务器了;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值