反馈已提交

网络繁忙

Linux系统配置使用SFTP

  • 文档创建者:Vic.zhang
  • 历史版本:29
  • 最近更新:Carly 于 2023-11-29
  • 1. 概述

    Linux 系统自带 SFTP 服务,本文以CentOS 7系统为例,介绍如何在 Linux 系统中使用 SFTP 。体步骤可能因操作系统版本和配置差异而有所不同。

    2. 安装OpenSSH服务器

    SFTP是通过SSH协议进行安全文件传输的,因此需要安装OpenSSH服务器。

    2.1 判断是否已安装OpenSSH服务器

    1)打开终端或命令行界面。以root用户身份登录。

    2)运行以下命令以判断是否安装OpenSSH服务器

    yum -q list openssh-server
    • 如果看到与OpenSSH相关的输出行,说明系统中已安装了OpenSSH客户端。请确保OpenSSH服务器版本大于 4.8p1,如果版本过低,需要更新。

    • 如果未找到相关的OpenSSH输出,并显示类似于"command not found"等错误消息,则表示系统尚未安装OpenSSH服务器。

    2.2 安装OpenSSH服务器

    如根据2.2节查询出,系统已安装 4.8p1 以上版本的 OpenSSH 服务器,可跳过本节操作。

    如根据2.1节查询出,系统尚未安装OpenSSH服务器,或已安装的OpenSSH服务器版本不符合要求,则需执行本节操作。

    1)打开终端或命令行界面。以root用户身份登录。

    2)运行以下命令以更新系统软件包列表:

    sudo yum update

    3)运行以下命令以安装OpenSSH服务器:

    sudo yum install openssh-server

    2.3 修改并发和会话数限制

    由于使用SFTP时,可能会出现高并发状况,因此需要提前根据预期负载情况来优化服务器的并发和会话数限制。

    否则在高并发状态下,SFTP连接会出现报错:connection is closed by foreign host

    参数介绍:

    参数
    说明
    MaxStartups

    用于限制 SSH 服务器允许的最大并发连接数和连接速率限制,即同时连接到服务器的客户端数量的上限

    参数值的格式为 a:b:c

    • a:表示最大并发连接数

    • b:表示在a个连接数后进行启动速率限制的时间窗口(以分钟为单位)

    • c:表示在限制期间允许的最大增量连接数

    默认值MaxStartups 10:30:100,表示最大并发连接数为10,限制为30分钟内的连接速率,并允许每30分钟增加100个连接。

    MaxSessions

    用于限制一个用户可以同时建立的 SSH 会话数

    参数值的格式是一个整数,表示允许的最大会话数

    默认值MaxSessions 10,表示每个用户最多可以同时打开 10 个 SSH 会话

    修改方法:

    1)打开终端或命令行界面。以root用户身份登录。

    2)使用文本编辑器(如vi或nano),打开/etc/ssh/sshd_config文件。

    3)在文件中找到包含MaxStartups和MaxSessions的行。

    默认情况下,这两行是注释状态(使用#开头),取消注释行。或者如果不存在,请在文件的末尾添加以下行并保存:

    MaxStartups 1000:30:1200
    MaxSessions 1000

    4)重新加载SSH服务器的配置以应用更改。可以使用以下命令重新加载OpenSSH服务器:

    sudo systemctl reload sshd

    2.4 配置SSH身份验证

    默认情况下,OpenSSH服务器使用系统上的用户进行身份验证。需要确保有一个可以用于登录的用户帐户,并且该用户具有适当的权限。

    本节示例创建一个用户名为fanruan的用户,并为其设置密码和文件夹权限。

    1)新建用户(将"fanruan"替换为你要创建的用户名)

    sudo adduser fanruan

    2)为用户设置密码(将"fanruan"替换为你要创建的用户名,并按照提示设置密码)

    sudo passwd fanruan

    3)准备一个文件夹,用于存放帆软应用工程文件。本文示例/home/fanruan

    4)请确保该用户有该文件夹的读写权限(将"/home/fanruan"替换为你的文件夹路径)

    chmod -R 777 /home/fanruan

    3. 准备文件服务器

    3.1 拷贝工程文件

    1)进入帆软应用%Tomcat_HOME%/webapps/webroot文件夹。

    2)将其中的 WEB-INF 文件夹,拷贝到 OpenSSH 服务器准备好的 /home/fanruan 目录(即2.4节准备的文件夹)下。

    3.2 启动 SFTP 服务

    1)打开终端或命令行界面。以root用户身份登录。

    2)运行以下命令以检查SSH服务器的状态:

    service sshd status
    • 如果Active状态为running,说明 SFTP 已启动。

    • 如果Active状态不是running,说明SFTP未启动。

    3)运行以下命令以启动SSH服务器:

    service sshd start

    3.3 开放端口

    SFTP 所在服务器防火墙需开放 22 端口。

    4. 集群配置 SFTP 作为文件服务器

    管理员登录FineBI系统,点击「管理系统>智能运维>集群配置」,详情配置步骤请参考:Linux系统手动配置标准抽取集群

    配置文件服务器时,协议选择 SFTP ,路径填写绝对路径,为 WEB-INF 文件夹的路径。如下图所示:

    5. 注意事项

    5.1 运维知识

    service sshd status #查看 sftp 的状态
    service sshd start #启动服务
    service sshd stop #停止服务
    service sshd restart #重启 sftp

    注:SFTP 默认是随系统启动而启动的,更多运维知识参见:Linux版集群运维手册 

    5.2 无法上传文件或者无法重启 sshd 服务

    登录 Sftp 操作文件报错“550 create directory operation failed”或者无法登录以及开启777权限以后仍然没有读写权限考虑以下操作。

    这是 SELinux(Security-Enhanced Linux,是美国国家安全局对于强制访问控制的实现)安装机制问题,需要关闭 SELinux。

    1)永久关闭 SELinux 的方式

    vi /etc/selinux/config # 编辑 SELinux 的 config 文件
    SELINUX=enforcing --> SELINUX=disabled  # 永久关闭 SELinux 重启系统生效

    2)临时关闭 SELinux 的方式

    setenforce 0 # 执行命令,仅临时关闭,重启后又会恢复原状

    3)不关闭 SELinux

    getsebool -a | grep ftpd # 查询的结果中,只有 ftp_home_dir 和 allow_ftpd_full_access 必须为 on 才能使 vsftpd 具有访问 ftp 根目录,以及文件传输等权限
    setsebool -P ftp_home_dir 1 # 执行即可
    setsebool -P allow_ftpd_full_access 1 # 执行即可

    注:更多 SELinux 相关的知识请参见:SELinux 入门

    附件列表


    主题: 部署集成
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持