linux 搭建 sftp 服务器
sftp 直接使用ssh端口(不会占用其它端口),可以比较方便和安全的共享文件。
下面记录一下它的搭建方式~
添加用户组
groupadd sftp
添加用户
sudo useradd -g sftp -s /usr/sbin/nologin -M sftp
修改用户密码
修改sftp用户的密码
创建用户目录
cd /home
mkdir sftp
chown root:sftp sftp
chmod 755 sftp
修改ssh相关配置文件
sudo vim /etc/ssh/sshd_config
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
Match User sftp
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /home/sftp
重启服务
sudo service sshd restart
注意
- 有些系统可能时
/sbin/nologin
,如果不确定可以看下/etc/passwd
- ChrootDirectory对应的目录的所有者必须是root,不然访问会有问题。详情见这里
root has to be the user which owns the chrooted dir. For the chroot to be created, you need superuser, which is why you need to have root own that directory/folder. Something about 'jailed chroot' or something. Discovered that when making a chroot jail for one of my users on a specific server at work.