在CentOS上安装和配置SFTP服务主要涉及安装OpenSSH服务器、创建用户、配置SSH和SFTP相关设置,以及设置用户权限。以下是详细的步骤:
首先,确保你的系统已经安装了OpenSSH服务器。如果没有安装,可以使用以下命令进行安装:
sudo yum install -y openssh-server
创建一个专门用于SFTP用户的组:
sudo groupadd sftpusers
创建一个新的用户,并将其添加到sftpusers
组中。注意,这里我们将用户的shell设置为/bin/false
,以防止用户登录到系统:
sudo useradd -g sftpusers -s /bin/false mysftp
然后,为新用户设置密码:
sudo passwd mysftp
编辑SSH配置文件/etc/ssh/sshd_config
,找到或添加以下内容:
# Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
Match Group sftpusers
ChrootDirectory /data/sftp/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
这里的%u
是用户的用户名,/data/sftp/%u
是用户的根目录。
确保用户的根目录及其所有上级目录的属主和属组都是root,并且权限设置为755。例如,对于用户mysftp
,目录/data/sftp/mysftp
应该如下设置:
sudo chown root:root /data/sftp/mysftp
sudo chmod 755 /data/sftp/mysftp
如果SELinux处于 enforcing 模式,需要将其设置为 permissive 模式或 disabled:
sudo setenforce 0
或者编辑/etc/selinux/config
文件:
SELINUX=disabled
然后重启系统使更改生效。
保存所有配置更改后,重启SSH服务以应用新的设置:
sudo systemctl restart sshd
使用SFTP客户端连接到服务器,验证用户是否能够正确登录并访问其主目录。例如:
sftp mysftp@your_server_ip
输入密码后,用户应该能够看到并访问其主目录。