SFTP:安全文件传输协议 🗂️
1. 什么是 SFTP?🔒
SFTP(SSH File Transfer Protocol)是基于 SSH(Secure Shell)协议的文件传输协议。与传统的 FTP 协议不同,SFTP 提供了加密的数据传输,确保数据在传输过程中不被截获或篡改。它通常用于安全地在两台计算机之间传输文件,特别是在远程管理和数据备份等场景下。
SFTP 并不仅仅是文件的上传和下载,它还支持文件的管理操作,如删除文件、创建目录等。由于它是建立在 SSH 之上的,SFTP 继承了 SSH 的加密功能,确保了文件传输的安全性。
2. SFTP 的工作原理 🔍
SFTP 的工作原理可以简单地描 述为:
- 连接和身份验证:客户端通过 SSH 协议连接到 SFTP 服务器,并通过 SSH 提供的身份验证机制(如密码或密钥认证)进行认证。
- 建立安全通道:一旦身份验证通过,SFTP 客户端与服务器之间建立加密的通信通道。所有的文件传输操作(包括上传、下载、删除文件等)都会通过这个加密通道进行。
- 文件操作:客户端可以在服务器上执行多种文件操作,常见的包括:
- 上传文件
- 下载文件
- 列出目录
- 创建和删除目录
- 修改文件权限等
3. SFTP 与 FTP 的区别 🔄
- sftp 基于 ftp, 不同之处在于:使用 SSH 安全通道进行命令和数据输出。
- 使用 sftp 不需要安装新的服务程序,只需要修改 ftp 和 ssh 服务配置,让两个服务搭配工作就行了。
特性 | FTP | SFTP |
---|---|---|
安全性 | 明文传输 | 加密传输 |
协议层 | 独立的协议(控制连接和数据连接) | 基于 SSH 协议 |
身份验证 | 使用用户名和密码进行身份验证 | 使用 SSH 密钥或密码进行身份验证 |
默认端口 | 20 21 | 22 |
操作支持 | 仅支持文件传输,不支持文件管理 | 支持文件传输、文件管理、文件权限 |
4. 安装和配置 SFTP 服务 🖥️
SFTP 依赖于 SSH 服务,因此首先需要安装并配置 SSH 服务。以下是配置 SFTP 服务的步骤:
4.1 安装 OpenSSH 服务
在 Ubuntu/Debian 系统中:
sudo apt update
sudo apt install openssh-server
在 CentOS/RHEL 系统中:
sudo yum install openssh-server
4.2 配置 SFTP 服务
SFTP 是 SSH 服务的一部分,因此只需要配置 SSH 服务即可启用 SFTP。在 /etc/ssh/sshd_config
配置文件中,你可以进行一些特定设置来限制或增强 SFTP 的安全性。