centos

如何在CentOS上设置SFTP用户认证

小樊
48
2025-07-18 19:06:32
栏目: 智能运维

在CentOS上设置SFTP用户认证,可以按照以下步骤进行:

1. 安装必要的软件包

首先,确保你的CentOS系统已经安装了openssh-serveropenssh-clients。如果没有安装,可以使用以下命令进行安装:

sudo yum install openssh-server openssh-clients

2. 创建SFTP用户

创建一个新的用户,并为其设置密码。例如,创建一个名为sftpuser的用户:

sudo adduser sftpuser
sudo passwd sftpuser

按照提示输入并确认密码。

3. 配置SSH和SFTP

编辑SSH配置文件/etc/ssh/sshd_config,以允许SFTP访问并限制用户的访问权限。

sudo vi /etc/ssh/sshd_config

在文件中找到并修改以下行:

# Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp

# Allow users to use SFTP only
Match Group sftpusers
    ChrootDirectory %h
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

4. 创建SFTP用户组(可选)

为了更好地管理SFTP用户,可以创建一个专门的用户组sftpusers,并将SFTP用户添加到该组中。

sudo groupadd sftpusers
sudo usermod -aG sftpusers sftpuser

5. 设置Chroot环境

为了限制SFTP用户的根目录,需要设置chroot环境。编辑/etc/ssh/sshd_config文件,添加或修改以下行:

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

确保chroot目录及其所有父目录的权限设置正确。例如,如果sftpuser的家目录是/home/sftpuser,则需要确保/home目录的权限设置为755,并且/home/sftpuser目录的权限设置为755

sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser

6. 重启SSH服务

保存并关闭sshd_config文件后,重启SSH服务以应用更改:

sudo systemctl restart sshd

7. 测试SFTP连接

使用SFTP客户端连接到服务器,测试是否可以正常登录并进行文件传输。例如,使用命令行SFTP客户端:

sftp sftpuser@your_server_ip

如果一切配置正确,你应该能够成功登录并进行SFTP操作。

通过以上步骤,你可以在CentOS上成功设置SFTP用户认证,并限制用户的访问权限。

0
看了该问题的人还看了