linux搭建sftp服务器
目录
一、sftp服务器介绍
在开发的过程中,一定避免不了向服务器上传下载文件的操作,我们可以用ftp进行文件上传,但是ftp传输数据是不安全的,很多时候我们都是选择sftp进行上传下载文件。
sftp相对于ftp在数据传输的过程中对数据进行了加密,当然这也是有代价的,就是损耗了数据传输的一些效率,以此来保证数据的安全性。
使用ftp需要进行安装,但是使用sftp就无需进行安装,sftp基于默认的22端口,是ssh内含的协议,只要启动了sshd就可以使用。
二、安装步骤
先看下整体的操作步骤,然后分步骤讲解:
2.1 创建sftp用户组,查看是否创建成功
groupadd sftp
cat /etc/group
2.2 创建sftp用户mysftp,加入到sftp组中,同时修改mysftp用户密码
useradd -g sftp -s /bin/false mysftp
passwd mysftp
2.3 新建一个目录,指定为mysftp用户的主目录
mkdir -p /sftp/mysftp
usermod -d /sftp/mysftp mysftp
2.4 编辑配置文件:vim /etc/ssh/sshd_config
注释掉这行Subsystem sftp /usr/libexec/openssh/sftp-server
新增下面几行,位置要在UseDNS no之后,或者末尾,建议末尾最好。
# 注释掉下面这行
# Subsystem sftp /usr/libexec/openssh/sftp-server
# 新增下面几行,建议放在末尾,后者UseDNS no之后,否则会sshd启动会失败
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory /sftp/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
2.5 设置目录权限:
#文件夹所有者必须为root,用户组可以不是root
#权限不能超过755,否则会导致登录报错,可以是755
chown root:sftp /sftp/mysftp
chmod 755 /sftp/mysftp
2.6 新建一个upload目录供mysftp用户上传文件,目录所有者为mysftp所有组为sftp,所有者有写入权限,所有组无写入权限
mkdir /sftp/mysftp/upload
chown mysftp:sftp /sftp/mysftp/upload
chmod 755 /sftp/mysftp/upload
2.7 关闭selinux并重启sshd服务
setenforce 0
service sshd restart
2.8 测试:
1.其它服务器进行验证
sftp -P 端口 用户名@主机ip
2.懒得用其它服务器验证的,还可以用xftp这个工具进行验证。
如果全部成功,sftp服务器就算配置完成了。