在CentOS系统下配置SFTP用户认证,通常涉及以下几个步骤:
首先,确保你已经安装了openssh-server,因为SFTP是SSH的一部分。
sudo yum install openssh-server
创建一个新的用户,并设置其主目录和shell。
sudo adduser sftpuser
sudo passwd sftpuser
按照提示输入并确认密码。
编辑/etc/ssh/sshd_config文件,以允许SFTP访问。
sudo vi /etc/ssh/sshd_config
找到并修改以下行:
Subsystem sftp /usr/libexec/openssh/sftp-server
确保这一行没有被注释掉。
为了限制SFTP用户的访问权限,可以创建一个chroot环境。
sudo mkdir /home/sftpuser/upload
sudo chown root:root /home/sftpuser/upload
sudo chmod 755 /home/sftpuser/upload
sudo chown sftpuser:sftpuser /home/sftpuser
sudo chmod 755 /home/sftpuser
sudo groupadd sftpusers
sudo usermod -aG sftpusers sftpuser
如果你希望进一步限制SFTP用户的访问,可以使用PAM(Pluggable Authentication Modules)。
编辑/etc/pam.d/sshd文件:
sudo vi /etc/pam.d/sshd
添加以下行:
auth required pam_listfile.so item=user sense=allow file=/etc/ssh/sftpusers onerr=succeed
然后创建/etc/ssh/sftpusers文件并添加不允许SFTP访问的用户:
sudo vi /etc/ssh/sftpusers
例如:
root
最后,重启SSH服务以应用更改。
sudo systemctl restart sshd
使用SFTP客户端连接到服务器,验证配置是否正确。
sftp sftpuser@your_server_ip
如果一切配置正确,你应该能够成功连接并进行文件传输。
通过以上步骤,你可以在CentOS系统下成功配置SFTP用户认证。