温馨提示×

如何在CentOS上使用FileZilla进行SFTP

小樊
38
2025-12-31 01:43:19
栏目: 智能运维

在 CentOS 上使用 FileZilla 进行 SFTP 的完整步骤

一 准备工作

  • CentOS 上确保 SSH 服务已运行,SFTP 基于 SSH,默认端口为 22。如使用云服务器,需在安全组放行 TCP 22 端口。
    示例:
    sudo systemctl start sshd
    sudo systemctl enable sshd
  • 在本地电脑安装 FileZilla Client(Windows/macOS/Linux 均可)。
    以上准备完成后即可进行 SFTP 连接。

二 使用密码连接 FileZilla 到 CentOS

  • 打开 FileZilla → 文件 → 站点管理器 → 新站点
  • 配置如下参数:
    • 协议:SFTP - SSH File Transfer Protocol
    • 主机:服务器公网/内网 IP
    • 端口:22
    • 登录类型:Normal
    • 用户名/密码:填入 CentOS 系统账户与密码
  • 点击 连接,首次连接会出现主机指纹确认,确认后保存站点以便下次使用。
    完成后即可在左右面板间拖拽上传/下载文件。

三 使用密钥连接 FileZilla 到 CentOS

  • 生成密钥对(推荐在本地生成):
    • Windows 使用 PuTTYgen 生成私钥,保存为 .ppk;将公钥内容追加到服务器的 ~/.ssh/authorized_keys
    • Linux/macOS 使用 ssh-keygen 生成 id_rsaid_rsa.pub,将公钥追加到 ~/.ssh/authorized_keys
  • FileZilla 站点配置:
    • 协议:SFTP
    • 主机/端口:IP/22
    • 登录类型:密钥文件(Key file)
    • 密钥:选择 PuTTYgen 生成的 .ppk(FileZilla 自带 PuTTY 密钥格式支持)
  • 连接并保存站点。
    说明:SFTP 的密钥认证与 SSH 一致,使用公钥免密登录更安全。

四 常见问题与排查

  • 连接被拒绝或超时:确认 sshd 已启动、本机与服务器 网络可达、云环境 安全组/防火墙放行 22 端口
  • 530 Login incorrect:检查 用户名/密码是否正确、是否误选了 FTP 协议(应为 SFTP)、账户是否被限制登录。
  • 权限不足/无法写入:确保目标目录对登录用户具备 写权限(如属主/权限设置正确)。
  • 中文文件名乱码:在 FileZilla → 编辑 → 设置 → 字符集 选择 UTF-8
  • 大文件传输中断或不完整:优先使用 SFTP 而非 FTP,保持网络稳定;必要时分片或断点续传。

五 进阶 仅 SFTP 访问与目录隔离示例

  • 若需限制某用户仅能通过 SFTP 且在其家目录“监狱”中操作,可在 /etc/ssh/sshd_config 末尾加入:
    Subsystem sftp internal-sftp
    Match Group sftp
    ChrootDirectory /data/sftp/%u
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no
  • 目录与权限示例:
    sudo groupadd sftp
    sudo useradd -g sftp -s /bin/false mysftp
    sudo mkdir -p /data/sftp/mysftp/upload
    sudo chown root:sftp /data/sftp/mysftp
    sudo chmod 755 /data/sftp/mysftp
    sudo chown mysftp:sftp /data/sftp/mysftp/upload
    sudo chmod 755 /data/sftp/mysftp/upload
    sudo systemctl restart sshd
  • 之后使用 FileZilla 以 mysftp 账户通过 SFTP 连接,根目录将被限制为 /data/sftp/mysftp,可在 upload 目录上传/下载。
    提示:Chroot 根目录及其上级目录需 root 所有且不可写,否则 SFTP 会拒绝登录;如需写入,请在根目录下创建可写子目录并赋权给相应用户。

0