转载地址 :
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方式登录服务器了;