配置安全的 OpenSSH 的 FTP 服务

服务需求

  1. 用户可以使用 FTP 服务
  2. 用户不能使用 Shell 服务
  3. 用户只能访问指定的目录

版本需求
需要 OpenSSH 20080518 或之后版本

配置方法

sudo vim /etc/ssh/sshd_config
#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp
Match Group sftp
	ChrootDirectory %h
	ForceCommand internal-sftp
	X11Forwarding no
	AllowTcpForwarding no
sudo groupadd sftp
sudo /etc/init.d/ssh restart

增加用户

sudo useradd -d /home/sftp -m -g sftp -s /bin/false sftp
sudo chown root:root /home/sftp
sudo chmod 755 /home/sftp
sudo mkdir /home/sftp/vroot
sudo chown sftp:sftp /home/sftp/vroot
sudo passwd sftp

由于只能 chroot 到属于 root 的,权限是 755 的目录,所以用户需要在主目录中新建一个目录并设置正确的属性用于上传。

Over!

2 thoughts on “配置安全的 OpenSSH 的 FTP 服务”

  1. 我疯了
    好容易把RHEL5的OpenSSH从4折腾到5让他原生支持chroot
    但是发现一个非常崩溃的问题
    我把sftp的user的home定位到web服务的attachement目录后,发现sftp会显示验证失败。默认的home目录就没问题,查了一下,chroot的目录必须是root 755权限,,可是我的apache为了安全,都是运行在nobody用户下面的,这个问题非常纠结的,o(╯□╰)o

Leave a Reply

Your email address will not be published. Required fields are marked *