在CentOS上配置SFTP虚拟用户需要以下几个步骤:
首先,确保已经安装了OpenSSH服务器和PAM(Pluggable Authentication Modules)库。如果没有,请运行以下命令安装:
sudo yum install openssh-server libpam-pwquality
创建一个新文件,例如/etc/sftp_users.conf,用于存储虚拟用户的用户名和密码。使用文本编辑器打开文件,然后添加用户名和密码,每行一个。例如:
user1
password1
user2
password2
保存并关闭文件。
为每个虚拟用户创建一个单独的目录,以便他们可以访问自己的文件。例如,为user1创建一个名为/home/user1的目录:
sudo mkdir /home/user1
设置适当的权限和所有权:
sudo chown root:root /home/user1
sudo chmod 755 /home/user1
编辑/etc/pam.d/sshd文件,添加以下行以启用PAM认证:
auth required pam_listfile.so item=user sense=allow file=/etc/sftp_users.conf onerr=succeed
编辑/etc/ssh/sshd_config文件,找到或添加以下内容:
Subsystem sftp internal-sftp
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
这里,我们限制虚拟用户只能使用SFTP,并将他们的根目录更改为他们自己的主目录。
创建一个名为sftpusers的新用户组,并将虚拟用户添加到该组:
sudo groupadd sftpusers
将虚拟用户添加到sftpusers组:
sudo usermod -a -G sftpusers user1
最后,重启SSH服务以应用更改:
sudo systemctl restart sshd
现在,您应该能够使用虚拟用户登录SFTP。请注意,这些虚拟用户没有系统账户,因此无法通过SSH访问系统。他们只能访问自己的主目录及其子目录。