Linux SFTP服务部署
1、创建sftp组
groupadd sftp
2、创建sftp所用的用户
#用户名sftpuser,创建用户到用户组,并禁止登录 useradd -g sftp -s /bin/false sftpuser -d /data/sftpuser #修改密码 passwd sftpuser
3、修改ssh配置
vim /etc/ssh/sshd_config
a. 注释Subsystem sftp /usr/libexec/openssh/sftp-server(若不注释,可以通过"cd / "看到系统所有文件)

b. 在文件末尾添加以下配置
# sftp Subsystem sftp internal-sftp Match Group sftp ChrootDirectory /data/sftpuser ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no
> Match Group sftp :匹配sftp组的用户,如果有多个组,用逗号分隔。也可以使用"Match User mysftp"匹配用户,多个用户之间也是用逗号分隔。
> ChrootDirectory /data/sftpuser :将用户的根目录指定到/data/sftpuser
> ForceCommand internal-sftp :指定sftp命令。
> X11Forwarding no :是否允许用户可以使用端口转发。
4、修改用户的根目录,让它属于root
chown root:sftp /data/sftpuser chmod 755 /data/sftpuser
5、创建sftpuser用户可写入的目录,并授权
// 由于sshd_config配置中指定了根目录,根目录无法写入,因此要创建一个用于上传文件的目录。
// 目录所有者为sftpuser,有写入权限;所有组为sftp,无写入权限。
mkdir /data/sftpuser/sftpdata chown sftpuser:sftp /data/sftpuser/sftpdata chmod 755 /data/sftpuser/sftpdata
如果需要多个目录,可以接着创建,然后赋予同样的权限即可,如:
mkdir /data/sftpuser/sftpdata123 chown sftpuser:sftp /data/sftpuser/sftpdata123 chmod 755 /data/sftpuser/sftpdata123
还可以创建软连接,看自己需求:
ln -s /data/sftpuser/sftpdata /data/sftp_dir
6、关闭selinux、firewallid
略...
7、重启sshd服务
systemctl restart sshd
8、测试
#连接,然后输入命令即可 sftp sftpuser@10.x.x.50

浙公网安备 33010602011771号