> 网络管理 > sftp

sftp: 安全文件传输工具

sftp 命令是一个交互式命令行客户端,通过 SSH(安全外壳协议)安全地传输文件。与 `ftp` 不同,它加密所有通信,提供了出色的安全性,并用于在本地和远程服务器之间上传、下载和管理文件。

概述

SFTP(SSH 文件传输协议)是为了取代安全性较弱的 FTP 而开发的协议。`sftp` 命令使用 SSH 连接来加密所有数据和命令,因此用户名称、密码、文件内容等信息在网络上不会有暴露的风险。与 FTP 类似,它支持交互模式,用法也相似,因此熟悉 FTP 的用户也能轻松使用。

主要特点

sftp 命令的主要特点如下:

  • 基于 SSH,加密所有通信。
  • 提供类似于 FTP 的交互式命令界面。
  • 使用单一端口(默认为 22),有利于防火墙环境。
  • 支持文件上传(`put`)、下载(`get`)、目录切换(`cd`、`lcd`)等多种功能。

SFTP 与 FTP 对比

SFTP 和 FTP 在文件传输方式和安全性方面存在显著差异。

  • SFTP: 通过 SSH 加密数据传输,因此更安全。使用端口 22,并通过单一端口处理所有通信。
  • FTP: 以明文(plain text)传输数据,安全性较弱。使用端口 21,且数据传输需要额外的端口。

主要选项

sftp 可以像 FTP 一样进入交互模式使用,也可以与特定命令一起以非交互模式使用。

1) 执行选项

2) 交互模式内部命令

生成的命令:

请尝试组合命令。

描述:

`sftp` 执行命令。

通过组合这些选项,您可以与 AI 一起虚拟地执行命令。

使用示例

通过 sftp 命令的各种使用示例来熟悉其功能。

以交互模式连接到服务器

sftp user@server.com

使用 `user` 账户连接到 `server.com`,进入交互模式。

下载文件

sftp user@server.com
... (连接后)
cd /var/log
get syslog ~

从远程服务器的 `/var/log` 目录下载 `syslog` 文件到本地的 `~` 目录。

上传文件

sftp user@server.com
... (连接后)
cd /var/www
put /home/user/document.txt

将本地的 `/home/user/document.txt` 文件上传到远程服务器的 `/var/www` 目录。

以非交互模式传输文件

sftp user@server.com:/remote/path <<< 'put localfile.txt'

使用 `put` 命令以非交互模式一次性上传文件。

安装

sftp 在大多数 Linux 发行版中作为 `openssh-client` 包的一部分默认包含。如果已安装 SSH 客户端,则无需额外安装。

Debian/Ubuntu

sudo apt update
sudo apt install -y openssh-client

RHEL/CentOS/Fedora

sudo dnf install -y openssh-clients

提示与注意事项

总结了使用 sftp 命令时需要注意的事项。

提示

  • sftp 与 `scp` 类似,使用 SSH 认证信息。因此,可以使用 `~/.ssh/config` 文件轻松管理连接设置。
  • 在交互模式下输入 `help` 可以查看所有内部命令列表。除了 `put` 和 `get`,还可以使用 `mput` 和 `mget` 传输多个文件。
  • 当发生网络问题或认证错误时,使用 `-v` 选项输出详细信息有助于解决问题。

相关命令

功能上相似或经常一起使用的命令。


相同类别命令