如何在 Linux 中创建 SFTP 用户进行安全文件传输
要在 Linux 中创建 SFTP 用户,您可以遵循系统方法,确保用户的访问权限受到限制,同时能够安全地传输文件。
本指南将提供在 Linux 系统上设置仅限 SFTP 用户的详细步骤,重点以 Ubuntu 作为主要示例,但这些原则广泛适用于其他 Linux 发行版以及。
SFTP概述
SFTP (SSH 文件传输协议) 是文件传输协议 (FTP) 的安全版本,它使用< SSH(Secure Shell)对通过网络传输的数据进行加密,通常用于在客户端和服务器之间安全地传输文件。
创建新的 SFTP 用户
首先,您需要创建一个新的sftp用户帐户,该帐户将用于登录并使用SFTP传输文件。
sudo adduser sftpuser
创建 SFTP 目录
接下来,您需要创建一个目录,SFTP用户可以在其中上传和下载文件,该目录将是他们用于SFTP用途的主目录。
sudo mkdir -p /home/sftpuser/uploads
为了保证安全,请为目录设置正确的权限。用户应该只能访问自己的目录,而不能导航到系统的其他部分。
sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
然后,更改上传目录的所有权:
sudo chown sftpuser:sftpuser /home/sftpuser/uploads
为 SFTP 配置 SSH
您需要编辑 SSH 服务器配置文件来配置 SSH,以允许新用户使用 SFTP。
sudo nano /etc/ssh/sshd_config
在文件末尾添加以下行以配置 SFTP 访问:
Match User sftpuser
ChrootDirectory /home/sftpuser
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
以下是每行的作用:
- 匹配用户 sftpuser 仅将这些设置应用于 sftpuser。
- ChrootDirectory /home/sftpuser 限制用户对 /home/sftpuser 的访问。
- ForceCommand internal-sftp 强制用户仅使用 SFTP,不允许 SSH shell 访问。
- AllowTcpForwarding no 和 X11Forwarding no 是附加安全措施,可防止用户使用其他 SSH 功能。
保存更改后,重新启动 SSH 服务以应用更改。
sudo systemctl restart ssh
测试SFTP用户
您现在可以使用 SFTP 客户端或命令行连接到您的服务器来测试与 SFTP 服务器的连接。
sftp sftpuser@your_server_ip
连接后,您可以使用 SFTP 命令导航和管理上传目录中的文件。
例如,使用 ls 命令列出文件并使用 put 上传文件。
sftp> ls
sftp> cd uploads
sftp> get remotefile.txt
sftp> put lists.txt
结论
在 Linux 中创建 SFTP 用户是一个简单的过程,可以增强安全性和文件管理功能。通过执行以下步骤,您可以设置专用用户进行 SFTP 访问,确保文件传输安全并仅限于适当的目录。