在CentOS系统中,您可以通过以下步骤创建一个用于SFTP的用户:
-
登录到服务器: 使用SSH登录到您的CentOS服务器。
-
创建新用户: 使用
useradd
命令创建一个新用户。例如,创建一个名为sftpuser
的用户:sudo useradd sftpuser
-
设置密码: 使用
passwd
命令为新用户设置密码:sudo passwd sftpuser
按照提示输入并确认密码。
-
限制用户的shell访问: 为了确保用户只能通过SFTP访问,而不是SSH,您可以将用户的默认shell更改为
/sbin/nologin
或/bin/false
。这样,用户登录后将无法使用shell。sudo usermod -s /sbin/nologin sftpuser
-
配置SSH和SFTP: 编辑SSH配置文件
/etc/ssh/sshd_config
,确保以下配置项存在并且没有被注释掉:Subsystem sftp internal-sftp
这将启用内建的SFTP子系统。
-
创建用户的家目录: 确保用户的家目录存在,并且权限设置正确:
sudo mkdir -p /home/sftpuser sudo chown root:root /home/sftpuser sudo chmod 755 /home/sftpuser
-
配置用户的访问权限: 您可以使用
chroot
来限制用户只能访问其家目录。编辑SSH配置文件/etc/ssh/sshd_config
,添加或修改以下内容:Match User sftpuser ChrootDirectory /home/sftpuser ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no
这将确保
sftpuser
只能访问其家目录,并且不能进行TCP和X11转发。 -
重启SSH服务: 使配置生效,重启SSH服务:
sudo systemctl restart sshd
完成以上步骤后,您就可以使用新创建的用户sftpuser
通过SFTP连接到服务器了。确保防火墙允许SFTP连接(默认端口22)。