CentOS 服务器上开启并配置 SFTP Server

作者:じ☆ve不哭

发布时间:2025-03-21T14:06:21

CentOS 服务器上开启并配置 SFTP Server,可以按照以下步骤进行:


步骤 1:安装 OpenSSH

# 更新系统并安装 OpenSSH
sudo yum update -y
sudo yum install -y openssh-server

步骤 2:启动并启用 SSH 服务

# 启动 SSH 服务
sudo systemctl start sshd

# 设置开机自启动
sudo systemctl enable sshd

步骤 3:创建 SFTP 用户

# 创建 SFTP 用户
sudo useradd -m sftpuser

# 设置 SFTP 用户密码
sudo passwd sftpuser

步骤 4:创建 SFTP 专用目录

# 创建上传目录
sudo mkdir -p /home/sftpuser/upload

# 设置目录权限
sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser

# 允许 sftpuser 访问 upload 目录
sudo chown sftpuser:sftpuser /home/sftpuser/upload

步骤 5:修改 SSH 配置

编辑 sshd_config 文件:

sudo vim /etc/ssh/sshd_config

添加或修改以下配置:

# 禁止 SFTP 用户使用 shell
Match User sftpuser
    ChrootDirectory /home/sftpuser
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

⚠️ 注意:

  • Match User:指定仅对 sftpuser 生效的规则。
  • ChrootDirectory:将 SFTP 用户限制在 /home/sftpuser 目录中。

步骤 6:重启 SSH 服务

sudo systemctl restart sshd

步骤 7:验证 SFTP 连接

测试使用 SFTP 连接

sftp sftpuser@<your-server-ip>

常用 SFTP 命令:

  • put <localfile>:上传文件
  • get <remotefile>:下载文件
  • ls:列出远程目录
  • exit:退出

可选:开启防火墙 SFTP 端口(默认 22)

# 开启 SSH 端口
sudo firewall-cmd --permanent --zone=public --add-port=22/tcp
# 重新加载防火墙
sudo firewall-cmd --reload

🎉 完成!

现在 sftpuser 可以通过 SFTP 连接到服务器,并且只能访问 /home/sftpuser/upload 目录。