Linux教程

linux 搭建sftp服务器

本文主要是介绍linux 搭建sftp服务器,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.创建sftp用户组
groupadd sftp

2.创建sftp用户并加入到sftp用户组
useradd -g sftp sftp
修改sftp用户密码
passwd sftp

3.创建/data/sftp/目录,并将它指定为sftp组用户的home目录
mkdir -p /data/sftp
usermod -d /data/sftp sftp

4.修改ssh 配置文件/etc/ssh/sshd_config
将如下这行注释掉

Subsystem sftp /usr/libexec/openssh/sftp-server

添加 以下几行
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory /data/sftp/ 设置用户上传文件的根目录
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no (修改原有的 yes为no 不起用转发代理)
注意:
ChrootDirectory设置的目录权限及其所有的上级文件夹权限,属主和属组必须是root,即/data及子目录/data/sftp/ 属主和属组必须是root
ChrootDirectory设置的目录权限及其所有的上级文件夹权限,只有属主能拥有写权限,也就是说权限最大设置只能是755

5.设置Chroot目录权限
chown root:root /data/sftp/
chmod 755 /data/sftp/

6.新建一个目录供sftp用户上传文件,这个目录属主属组为sftp,所有者有写入权限所有组无写入权限(即权限为755)
mkdir /data/sftp/upload
chown sftp:sftp /data/sftp/upload
chmod 755 /data/sftp/upload

7.重启sshd服务测试

8.在linux其他服务器上进行验证,sftp 用户名@ip地址
sftp sftp@172.16.68.168
get 下载文件 put 上传文件 需进入到upload目录下执行put/get 上传下载

9.在windows 利用Winscp或者File zilla 测试
主机地址: 172.16.68.168 端口 22
用户名: sftp
密码: sftp用户密码

这篇关于linux 搭建sftp服务器的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!