linux安装sftp

在Linux系统中安装SFTP服务通常涉及以下步骤:

  1. 安装OpenSSH服务器
  • 对于基于Debian的系统(如Ubuntu),使用以下命令:
    sudo apt update
    sudo apt install openssh-server
    ```

- 对于基于RPM的系统(如CentOS、RHEL、Fedora),使用以下命令<b class="card40_249__sup_a7f6" data-sup="sup">2</b>:

```bash
    sudo yum install openssh-server
    ```

或<b class="card40_249__sup_a7f6" data-sup="sup">4</b>

```bash
    sudo dnf install openssh-server
    ```

2. **配置OpenSSH以支持SFTP** <b class="card40_249__sup_a7f6" data-sup="sup">5</b>:

- 编辑SSH配置文件 `/etc/ssh/sshd_config`,通常路径为 `/etc/ssh/sshd_config`<b class="card40_249__sup_a7f6" data-sup="sup">1</b>。

- 取消注释并确保以下配置项已启用或设置为相应数值<b class="card40_249__sup_a7f6" data-sup="sup">6</b>:

```bash
    Subsystem sftp internal-sftp
    ```

- 如果需要限制SFTP用户只能访问其主目录,可以添加以下配置<b class="card40_249__sup_a7f6" data-sup="sup">6</b>:

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

3. **创建SFTP用户组和用户** <b class="card40_249__sup_a7f6" data-sup="sup">4</b>:

- 创建一个新的用户组<b class="card40_249__sup_a7f6" data-sup="sup">6</b>:

```bash
    sudo groupadd sftp_users
    ```

- 创建一个新用户并将其添加到该组中,同时禁用其shell登录<b class="card40_249__sup_a7f6" data-sup="sup">2</b>:

```bash
    sudo useradd -m sftpuser -g sftp_users -s /bin/nologin
    ```

- 为新用户设置密码<b class="card40_249__sup_a7f6" data-sup="sup">2</b>:

```bash
    sudo passwd sftpuser
    ```

4. **设置用户主目录及权限** <b class="card40_249__sup_a7f6" data-sup="sup">8</b>:

- 创建用户的主目录<b class="card40_249__sup_a7f6" data-sup="sup">9</b>:

```bash
    sudo mkdir -p /home/sftpuser
    ```

- 修改用户主目录的所有者和权限<b class="card40_249__sup_a7f6" data-sup="sup">7</b>:

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

5. **重启SSH服务** :

- 重启SSH服务以应用更改<b class="card40_249__sup_a7f6" data-sup="sup">1</b>:

```bash
    sudo systemctl restart sshd
    ```

或<b class="card40_249__sup_a7f6" data-sup="sup">4</b>

```bash
    sudo service ssh restart
    ```

6. **配置防火墙** :

- 如果使用的是UFW防火墙,确保允许SFTP端口(默认为22)<b class="card40_249__sup_a7f6" data-sup="sup">1</b>:

```bash
    sudo ufw allow ssh
    ```

完成以上步骤后,SFTP服务应该已经在你的Linux系统上配置好了。你可以使用SFTP客户端(如FileZilla)或命令行工具(如 `sftp`)连接到服务器进行文件传输<b class="card40_249__sup_a7f6" data-sup="sup">1</b>。
Top