@big-bear
2018-01-10T07:44:05.000000Z
字数 1063
阅读 2676
linux
参考链接
1.创建限制用户组
groupadd sftpusers
2.创建没有ssh权限的用户
useradd -s /usr/sbin/nologin -G sftpusers ftpuser
usermod -s /usr/sbin/nologin ftpuser
usermod -g sftpusers ftpuser
3.修改/etc/ssh/sshd_config文件
需要注释掉Subsystem,UsePAM ,并添加以上代码:
#Subsystem sftp /usr/lib/openssh/sftp-server
#UsePAM yes
Subsystem sftp internal-sftp
Match Group sftpusers
ChrootDirectory %h
ChrootDirectory 则为允许访问的sftp目录(sftp登录后的默认目录)
%h 是用户主目录,也可以写指定路径;如果只想控制单一用户,可以用以下代替:
#Subsystem sftp /usr/lib/openssh/sftp-server
#UsePAM yes
Subsystem sftp internal-sftp
Match User ftpuser
ChrootDirectory &h
#ChrootDirectory /home/ftpuser
保存,并重启ssh
/bin/systemctl restart sshd.service
4、修改目录权限
必须满足以下条件:
ChrootDirectory设置的目录权限及上级,属主和属组必须是root
ChrootDirectory设置的目录权限及上级,只有属主能拥有写权限,最大只能是755
sudo chown root:root /home/ftpuser
sudo chmod 755 /home/ftpuser
之后可以在/home/ftpuser下建立拥有全部权限的文件夹,进行sftp操作
sudo mkdir /home/ftpuser/upload
sudo chmod 777 /home/ftpuser/upload
参考地址
1.屏蔽所有ssh访问
修改 /etc/hosts.deny
配置如下:
sshd : ALL
2.开放指定网段的ssh访问
修改/etc/hosts.allow
配置如下:
例如开放192.168和10网段
sshd:192.168,10.:allow