centos

怎样配置CentOS SFTP虚拟用户

小樊
40
2025-10-05 00:52:14
栏目: 云计算

在CentOS上配置SFTP虚拟用户需要以下几个步骤:

  1. 安装必要的软件包

首先,确保已经安装了OpenSSH服务器和PAM(Pluggable Authentication Modules)库。如果没有,请运行以下命令安装:

sudo yum install openssh-server libpam-pwquality
  1. 创建虚拟用户数据库

创建一个新文件,例如/etc/sftp_users.conf,用于存储虚拟用户的用户名和密码。使用文本编辑器打开文件,然后添加用户名和密码,每行一个。例如:

user1
password1
user2
password2

保存并关闭文件。

  1. 创建虚拟用户目录

为每个虚拟用户创建一个单独的目录,以便他们可以访问自己的文件。例如,为user1创建一个名为/home/user1的目录:

sudo mkdir /home/user1

设置适当的权限和所有权:

sudo chown root:root /home/user1
sudo chmod 755 /home/user1
  1. 配置PAM

编辑/etc/pam.d/sshd文件,添加以下行以启用PAM认证:

auth required pam_listfile.so item=user sense=allow file=/etc/sftp_users.conf onerr=succeed
  1. 配置SSH

编辑/etc/ssh/sshd_config文件,找到或添加以下内容:

Subsystem sftp internal-sftp
Match Group sftpusers
    ChrootDirectory %h
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

这里,我们限制虚拟用户只能使用SFTP,并将他们的根目录更改为他们自己的主目录。

  1. 创建一个用户组

创建一个名为sftpusers的新用户组,并将虚拟用户添加到该组:

sudo groupadd sftpusers

将虚拟用户添加到sftpusers组:

sudo usermod -a -G sftpusers user1
  1. 重启SSH服务

最后,重启SSH服务以应用更改:

sudo systemctl restart sshd

现在,您应该能够使用虚拟用户登录SFTP。请注意,这些虚拟用户没有系统账户,因此无法通过SSH访问系统。他们只能访问自己的主目录及其子目录。

0
看了该问题的人还看了