CentOS6下SSH与SFTP分离并配置非标准端口教程

需积分: 43 22 下载量 116 浏览量 更新于2024-08-05 4 收藏 4KB TXT 举报
"这篇文章主要介绍了如何在CentOS 6系统上将SSH服务与SFTP服务进行分离,并且配置SFTP使用不同的端口,以提高系统的安全性。操作过程涉及到修改配置文件、创建用户、设定目录权限以及启动和链接相关服务。" 在CentOS 6上,由于默认的SSH服务同时提供了SSH登录和SFTP文件传输功能,出于安全考虑,项目需求要求使用SFTP但不使用默认的22端口。为了满足这个需求,我们需要将SSH与SFTP服务分开运行,并设置SFTP使用自定义端口。以下是一步步的操作步骤: 首先,确认当前系统安装的`openssh`版本,因为不同的版本可能会影响到配置方式。在命令行输入`ssh -V`来查看SSH的版本,确保它支持SFTP分离。 接着,创建一个专门用于SFTP的用户和组。这里我们创建了一个名为`aichangsftp`的用户,将其添加到`sftp`组,并且设置其shell为 `/bin/false`,以防止该用户直接登录SSH。使用以下命令创建用户和设置属性: ```bash groupadd sftp useradd -g sftp -s /bin/false aichangsftp passwd aichangsftp ``` 设置密码后,为新用户分配一个家目录,并更改其权限。这里我们把`aichangsftp`用户的家目录设为 `/data/sftp/aichangsftp`,并且在 `/data/sftp` 创建相应的目录结构: ```bash mkdir -p /sftpdata/aichangsftp usermod -d /sftpdata/aichangsftp aichangsftp ``` 接下来,我们要复制并修改SSH的相关配置文件以支持SFTP服务。这包括复制`/etc/rc.d/init.d/sshd`到`/etc/rc.d/init.d/sftpd`,`/etc/pam.d/sshd`到`/etc/pam.d/sftpd`,`/etc/ssh/sshd_config`到`/etc/ssh/sftpd_config`,以及`/etc/sysconfig/sshd`到`/etc/sysconfig/sftp`。这些复制操作是为了保持原有SSH服务不受影响,同时创建独立的SFTP服务配置。 然后,修改新创建的SFTP配置文件,比如在`/etc/ssh/sftpd_config`中指定SFTP监听的端口,例如设置为2222。还需要更新PAM配置文件`/etc/pam.d/sftpd`,以便只允许SFTP操作。 最后,启动SFTP服务,并设置开机启动: ```bash service rcsftpd start chkconfig rcsftpd on ``` 同时,创建符号链接使得系统可以识别新的SFTP服务: ```bash ln -sf /usr/sbin/service /usr/sbin/rcsftpd ln -sf /usr/sbin/sshd /usr/sbin/sftpd ``` 最后,确认SFTP服务已启动并监听指定的端口,可以通过`netstat -tulnp | grep sftpd`来检查。 通过以上步骤,我们就成功地在CentOS 6上实现了SSH与SFTP的分离,并且设置了SFTP服务使用非标准端口。这种配置增强了系统的安全性,避免了对22端口的直接攻击,同时也满足了项目对数据传输的要求。