CentOS 7.5上SSH与SFTP分离详细教程

需积分: 50 21 下载量 107 浏览量 更新于2024-08-30 1 收藏 483KB DOCX 举报
本文档详细介绍了如何在CentOS 7.5系统上分离SSH和SFTP服务,以提高系统的安全性并独立管理这两个服务。SFTP(Secure File Transfer Protocol),作为SSH(Secure Shell)协议的一部分,通常依赖于SSHD守护进程运行,并通过22端口进行加密传输,确保数据的安全性。 首先,我们了解到SFTP本质上是一个客户端工具而非独立的服务,因为它依赖于SSHD的运行。在 CentOS 7.5及以上版本中,SSHD守护进程负责监听22端口并处理SSH和SFTP请求。要分离这两种服务,我们需要遵循以下步骤: 1. 复制必要的配置文件和服务脚本: - 从`/usr/lib/systemd/system/`目录下复制sshd.service文件,重命名为sftpd.service。 - 拷贝`/etc/pam.d/`的sshd配置到同目录,重命名为sftpd。 - 复制`/etc/ssh/sshd_config`到同目录,重命名为sftpd_config。 - 创建软链接,连接sshd与sftpd,以及sshd_config与sftpd_config。 - 拷贝`/etc/sysconfig/`下的sshd配置到同目录,重命名为sftp。 - 将sshd的pid文件sshd.pid移动到新目录,重命名为sftpd.pid。 2. 修改配置文件: - 在sftpd.service文件中,修改SSH相关的配置项,特别是与SFTP相关的Subsystem部分。 - 在sftpd_config文件中,清空sftp子服务的PID文件,并进行必要的配置调整,如添加专用的SFTP用户,禁用SELinux以提高兼容性。 3. 重启sftpd服务和测试: - 完成配置后,清空旧的sftpd.pid文件内容,确保服务的独立运行。 - 创建新的SFTP用户,用于后续的SFTP访问。 - 重启sftpd服务,然后使用XFTP或其他SFTP客户端软件测试连接,确认通过新创建的用户和端口(可能不再是默认的22)能否成功登录。 在整个过程中,需要注意权限设置,确保登录一级目录有适当的读取权限(ro)。文档提供的示例显示,应在`test/sftp`目录下检查并设置正确的权限。 通过以上步骤,读者可以成功地在CentOS 7.5系统中分离SSH和SFTP服务,为系统管理和用户安全提供更灵活的控制。