温馨提示×

SFTP在Linux系统中如何配置

小樊
52
2025-06-15 18:02:16
栏目: 智能运维

在Linux系统中配置SFTP(SSH File Transfer Protocol)通常涉及以下几个步骤:

1. 安装OpenSSH服务器

首先,确保你的系统上已经安装了OpenSSH服务器。大多数Linux发行版默认已经安装了OpenSSH服务器,如果没有,可以使用以下命令进行安装:

sudo apt-get update sudo apt-get install openssh-server # Debian/Ubuntu sudo yum install openssh-server # CentOS/RHEL sudo dnf install openssh-server # Fedora 

2. 配置SSH服务器

编辑SSH服务器的配置文件 /etc/ssh/sshd_config

sudo nano /etc/ssh/sshd_config 

找到并修改以下配置项:

  • 允许SFTP用户登录:确保以下行没有被注释掉并且设置为yes

    Subsystem sftp /usr/lib/openssh/sftp-server 
  • 限制用户登录:如果你只想允许特定用户通过SFTP登录,可以添加或修改以下配置:

    AllowUsers username1 username2 

    或者限制所有用户只能通过SFTP登录:

    Match Group sftpusers ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no 
  • 创建SFTP用户组(可选):如果你使用Match Group配置,需要创建一个SFTP用户组并添加用户到该组:

    sudo groupadd sftpusers sudo usermod -aG sftpusers username 

3. 配置Chroot环境(可选)

如果你希望限制SFTP用户只能访问其主目录,可以配置Chroot环境:

sudo nano /etc/ssh/sshd_config 

添加或修改以下配置:

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

然后创建用户的主目录并设置正确的权限:

sudo mkdir -p /home/username sudo chown root:root /home/username sudo chmod 755 /home/username 

4. 重启SSH服务

保存并退出配置文件后,重启SSH服务以应用更改:

sudo systemctl restart sshd 

5. 测试SFTP连接

使用SFTP客户端连接到服务器,测试配置是否成功:

sftp username@hostname 

如果一切配置正确,你应该能够成功登录并进行文件传输。

6. 防火墙设置(可选)

确保你的防火墙允许SSH连接(默认端口22):

sudo ufw allow 22/tcp sudo ufw reload # 如果使用UFW防火墙 

或者使用iptables

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT sudo service iptables save 

通过以上步骤,你应该能够在Linux系统中成功配置SFTP。

0