linux 设置sftp
时间: 2023-08-22 09:10:50 浏览: 125
在Linux中设置SFTP,可以通过以下步骤进行操作:
1. 确保已经安装了OpenSSH服务器。可以使用以下命令检查是否已安装:
```
sudo apt-get install openssh-server
```
2. 打开SSH配置文件`/etc/ssh/sshd_config`,并确保以下配置项已启用或添加:
```
Subsystem sftp internal-sftp
Match user sftpuser
ChrootDirectory /data/sftp
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
```
这些配置项的含义如下:
- `Subsystem sftp internal-sftp`:指定使用系统自带的internal-sftp作为SFTP服务。
- `Match user sftpuser`:匹配用户,可以根据需要添加多个用户或组。
- `ChrootDirectory /data/sftp`:设置用户的SFTP根目录为`/data/sftp`,确保用户只能在自己的目录下活动。
- `ForceCommand internal-sftp`:强制执行内部SFTP命令,并忽略任何`~/.ssh/rc`文件中的命令。
- `X11Forwarding no`:禁止用户使用X11转发。
- `AllowTcpForwarding no`:禁止用户使用端口转发。
3. 保存并关闭配置文件。
4. 重启SSH服务以使配置生效:
```
sudo service ssh restart
```
5. 确保用户的SFTP根目录已创建,并设置正确的权限:
```
sudo mkdir /data/sftp
sudo chown root:root /data/sftp
sudo chmod 755 /data/sftp
```
这将创建一个名为`/data/sftp`的目录,并将其所有权设置为root用户。
6. 创建SFTP用户并设置密码:
```
sudo adduser sftpuser
sudo passwd sftpuser
```
这将创建一个名为`sftpuser`的用户,并设置密码。
现在,您已经成功设置了SFTP服务,并限制了用户只能在其指定的目录下进行操作。用户可以使用SFTP客户端连接到服务器,并通过SFTP协议进行文件传输。
#### 引用[.reference_title]
- *1* *2* [Linux服务器下搭建SFTP服务](https://blog.csdn.net/huanglm_OneWholeLife/article/details/124636003)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [linux配置sftp及权限设置](https://blog.csdn.net/weixin_36108913/article/details/116608101)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文