温馨提示×

怎样修改centos sftp配置文件

小樊
48
2025-09-30 18:59:07
栏目: 智能运维

修改CentOS SFTP配置文件(/etc/ssh/sshd_config)的详细步骤

1. 准备工作

  • 备份原始配置文件:修改前务必备份,避免配置错误导致SSH服务无法启动。
    sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
    
  • 登录服务器:使用SSH客户端(如PuTTY)登录CentOS服务器,切换至root用户(需sudo权限)。
    sudo su -
    

2. 编辑SSH配置文件

使用文本编辑器(如vi/nano)打开/etc/ssh/sshd_config文件:

sudo vi /etc/ssh/sshd_config

或(若系统未安装nano,可通过sudo yum install nano -y安装):

sudo nano /etc/ssh/sshd_config

3. 关键配置修改(常见场景)

① 启用/修改SFTP子系统

找到Subsystem sftp行(通常位于文件末尾),确保未被注释(无#前缀)。默认路径为/usr/libexec/openssh/sftp-server,也可替换为internal-sftp(更轻量,无需额外进程):

# 原始配置(默认)
Subsystem sftp /usr/libexec/openssh/sftp-server

# 修改为(推荐)
Subsystem sftp internal-sftp

作用:定义SFTP服务的运行方式,internal-sftp是OpenSSH内置模块,无需单独安装。

② 限制用户组使用SFTP(推荐)

通过Match块限制特定用户组(如sftpusers)的访问权限,增强安全性:

Match Group sftpusers
    ChrootDirectory %h      # 将用户限制在其家目录(需设置正确权限)
    ForceCommand internal-sftp  # 强制使用SFTP,禁止SSH shell访问
    AllowTcpForwarding no   # 禁用TCP转发(防止隧道攻击)
    X11Forwarding no        # 禁用X11转发

说明

  • Match Group sftpusers:匹配 sftpusers组的用户;
  • ChrootDirectory %h:将用户根目录锁定为其家目录(如/home/username);
  • ForceCommand internal-sftp:禁止用户执行shell命令,仅允许SFTP操作。

③ 限制单个用户使用SFTP

若需限制特定用户(如ftpuser),可将Match块改为Match User

Match User ftpuser
    ChrootDirectory /home/ftpuser
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

作用:仅允许ftpuser通过SFTP访问其家目录。

④ 创建SFTP用户组及用户(可选)

若未创建sftpusers组,需先创建组并添加用户:

# 创建sftpusers组
sudo groupadd sftpusers

# 添加用户至sftpusers组(如username)
sudo usermod -aG sftpusers username

# 设置用户家目录权限(关键!ChrootDirectory要求父目录属root且权限为755)
sudo chown root:root /home/username
sudo chmod 755 /home/username

注意:用户家目录需属root,否则SFTP连接会报错。

4. 保存并退出编辑器

  • vi编辑器:按Esc键,输入:wq(保存并退出);
  • nano编辑器:按Ctrl+O(保存),Ctrl+X(退出)。

5. 重启SSH服务

修改配置后,需重启SSH服务使更改生效:

sudo systemctl restart sshd

验证服务状态(确保服务正常运行):

sudo systemctl status sshd

若显示active (running),则表示服务已启动。

6. 测试SFTP连接

使用SFTP客户端(如命令行工具)验证配置是否生效:

sftp username@your_server_ip

预期结果

  • 若配置了ChrootDirectory,用户登录后将直接进入其家目录(如/home/username);
  • 尝试执行lsputget等SFTP命令,确认功能正常;
  • 若配置了Match Group,非sftpusers组用户仍可通过SSH登录(需调整配置禁用SSH shell访问)。

注意事项

  • 权限问题ChrootDirectory指定的目录(如家目录)必须属root,且权限为755,否则SFTP连接会失败;
  • 语法检查:修改配置文件前,可使用sshd -T | grep sftp命令检查SFTP配置语法是否正确;
  • 日志排查:若连接失败,查看SSH日志(/var/log/secure)定位问题(如权限错误、配置语法错误)。

0