在Linux系统中安装SFTP服务通常涉及以下步骤:
- 安装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>。