在CentOS系统上配置SFTP(Secure File Transfer Protocol)用户认证主要涉及安装和配置OpenSSH服务器,以及设置用户和用户组的权限。以下是详细的步骤和配置说明:
安装OpenSSH服务器
首先,确保你的CentOS系统上已经安装了OpenSSH服务器。如果没有安装,可以使用以下命令进行安装:
sudo yum install openssh-server
配置SFTP用户认证
-
创建用户和用户组:
创建一个专门用于SFTP的用户组:
sudo groupadd sftpuser
创建一个新用户,并将其添加到
sftpuser
组中:sudo useradd -g sftpuser -s /sbin/nologin testuser
为新用户设置密码:
sudo passwd testuser
-
配置SSH:
编辑SSH配置文件
/etc/ssh/sshd_config
,确保以下配置项已正确设置:Subsystem sftp internal-sftp Match Group sftpuser ChrootDirectory /home/testuser ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no
这些配置指定了SFTP用户
testuser
只能访问其主目录/home/testuser
,并且只能使用internal-sftp
进行文件传输。 -
设置目录权限:
创建用户的主目录,并设置适当的权限:
sudo mkdir /home/testuser sudo chown root:sftpuser /home/testuser sudo chmod 755 /home/testuser
-
重启SSH服务:
保存配置文件后,重启SSH服务以应用更改:
sudo systemctl restart sshd
额外的安全措施
-
禁用密码认证:为了提高安全性,可以禁用密码认证,仅允许使用密钥认证。编辑
/etc/ssh/sshd_config
文件,找到以下行并注释掉或删除:PasswordAuthentication yes
改为:
PasswordAuthentication no
然后重启SSH服务。
-
启用公钥认证:生成SSH密钥对,并将公钥添加到用户的
authorized_keys
文件中。具体步骤如下:-
在客户端生成SSH密钥对:
ssh-keygen -t rsa
-
将公钥复制到服务器的
/home/testuser/.ssh/authorized_keys
文件中:ssh-copy-id testuser@your_server_ip
-
通过以上步骤,你可以在CentOS系统上配置SFTP用户认证,确保文件传输的安全性。