1. 概述
Linux 系统自带 SFTP 服务,本文将介绍如何在 Linux 系统中使用 SFTP 。
注:由于 SFTP 的传输方式使用了加密/解密技术,所以传输效率比普通的 FTP 要低得多。
2. 操作步骤
2.1 使用 root 用户查看 OpenSSH 的版本
输入命令:
ssh -V # 版本需大于 4.8p1,如果版本过低,需要及时进行更新
如下图所示:
2.2 创建用户
1)新建用户并设置密码:
useradd ceshi # 新建ceshi用户
passwd ceshi # 为ceshi用户设置密码
此时/home路径下将自动创建ceshi文件夹。如下图所示:
2.3 拷贝 WEB-INF,给文件夹赋权限
1)拷贝正式环境 Web 工程里的 WEB-INF 文件夹,并粘贴到/home/ceshi目录下。
2)赋予权限
chmod -R 777 /home/ceshi #给ceshi文件夹赋予写入权限
2.4 启动 SFTP 服务
查看 SFTP 状态,若未启动,需启动。
service sshd status #查看 sftp 的状态
service sshd start #启动服务
2.5 使用 SFTP
管理员进入平台,配置文件服务器时,协议选择 SFTP ,路径填写绝对路径,为 WEB-INF 文件夹的路径。如下图所示:
注:SFTP 所在服务器防火墙需开放 22 端口。
3. 运维知识
service sshd status #查看 sftp 的状态
service sshd start #启动服务
service sshd stop #停止服务
service sshd restart #重启 sftp
注:SFTP 默认是随系统启动而启动的,更多运维知识参见:集群运维手册-Linux 版
4. FAQ 文档
4.1 无法上传文件或者无法重启 sshd 服务
参考 Linux 系统安装配置 FTP 中 4.1 关闭 SELinux 的操作,即可解决。
4.2 高并发报错
问题描述:
高并发状态下,SFTP连接报错:connection is closed by foreign host
原因分析:
系统SSH终端连接数配置过小,查看虚拟机该参数,该参数在/etc/ssh/sshd_config中配置,为MaxStartups。
MaxStartups 默认设置是 10:30:100,意思是从第10个连接开始以30%的概率(递增)拒绝新连接,直到连接数达到100为止。
解决方案:
1)修改/etc/ssh/sshd_config中的MaxStartups,将其改为MaxStartups 1000:30:1200
2)修改/etc/ssh/sshd_config中的MaxSessions,将其修改为1000
3)重启SSH服务/etc/init.d/ssh restart