如何使用 sftp 在 Linux 上安全地传输文件

本指南将探讨如何使用 sftp(SSH 文件传输协议),这是一个命令行程序,用于通过网络在两台 Linux 计算机之间安全地传输文件。

什么是 SFTP?

在定义 SFTP 之前,先退一步了解一下 SFTP 的前身 FTP(文件传输协议)是很重要的。

FTP 是一种网络通信协议,用于在网络上的两台计算机之间传输文件,通常是在服务器和客户端之间。

SFTP 是更安全的 FTP 版本。 它通过利用 SSH(安全外壳)协议加密两台计算机之间交换的数据来维护安全性。 另一方面,FTP 通过网络以纯文本形式传输数据。

SFTP 还可以帮助您和您的组织实现某些合规性法规,例如 GDPR 或 CCPA,这些法规要求以最安全的方式传输机密数据。

访问远程 PC

Linux主要允许您通过SFTP传输文件 sftp 程序。 Sftp 是一个强大的命令行软件,它允许您通过 SSH 安全和交互地传输文件。

您可以使用以下命令通过 sftp 连接到远程服务器。 记得替换占位符“用户名“ 和 ”远程 pc 的 ip 地址” 相应地使用服务器的正确用户名和 IP 地址。

sftp username@ip-address-of-remote-pc

Enter 如果出现提示,请输入服务器密码。 如果终端用 连接的 状态,表示您已成功建立连接。 闪烁的光标只是表明 sftp 处于交互模式。

笔记:如果您没有要与之交互的远程服务器,可以通过运行以下命令在本地尝试 sftp:

sftp 127.0.0.1

交互式 sftp 命令

进入交互模式后,您可以使用多个命令与远程 PC 进行交互。 下面概述了一些最重要的命令。 请注意,与大多数 Linux 命令不同,sftp 命令不区分大小写。

列出远程服务器上的文件

最重要的任务之一是列出目录中的文件,以便您了解要传输的内容。 您还可以获取远程 PC 的文件和文件夹信息,包括存储文件的大小和权限。

要列出远程 PC 上的文件,可以使用以下命令:

ls

您可以使用大多数 ls 命令标志,例如 -一种, -l等,他们会工作得很好。

要列出本地工作 PC 上的文件,可以使用以下命令:

lls

列出当前工作目录

您还可以使用以下命令输出远程 PC 上当前工作目录的路径 密码. pwd 命令代表 目前的工作目录.

pwd

要列出本地 PC 上的当前工作目录:

lpwd

使用 Ctrl + L 清除交互式终端输出的键盘快捷键。

上传文件到服务器

使用 命令将文件从本地 PC 传输到远程服务器。 为了 example,要从您的主文件夹传输 Linux Manjaro ISO 映像,请使用以下命令。 您可以使用 -R 标志以递归方式复制目录。

put manjaro-xfce-21.0.7-minimal-210614-linux54.iso

输出将类似于下面显示的输出。 Sftp 会实时显示文件传输的进度。

此外,由于没有指定远程服务器的文件路径,sftp 会将文件放在与本地 PC 相似的路径中。

如果要复制多个文件,请使用 输入 而是命令。 为了 example复制所有 Excel 目录中的电子表格 (XLS) 文件:

mput *.xls

要中断或停止将文件传输到服务器,您可以使用键盘快捷键 Ctrl + C.

从服务器下载文件

使用 得到 命令将文件从服务器下载到本地 PC。 为了 example复制一个名为 索引.html 从服务器,只需运行以下命令:

get index.html

要从服务器获取多个文件,请使用 管理 命令。 为了 example将所有 HTML 文件从服务器的当前工作目录复制到本地系统:

mget *.html

更改文件权限

您还可以使用 chmod 命令在交互式终端中更改远程服务器上文件的权限。 为了 example授予所有访问权限 索引.html 文件,运行以下命令:

chmod 777 index.html

Exit sftp 会话

要退出 sftp 交互式终端,只需键入命令 再见. 或者,您可以使用 出口 或者 辞职 命令也是如此。

获取命令行帮助

与其死记硬背命令,不如学习如何在需要时从命令行获取帮助。

Sftp 带有很好的文档。 只需键入以下任一命令即可在交互式终端窗口中获​​得帮助。

help?

SFTP的实际应用

本指南向您展示了如何使用 sftp 命令在 Linux 计算机之间以交互方式安全地传输数据。 如果您碰巧是 Raspberry Pi 用户,您可能也有兴趣了解将数据从 Raspberry Pi 传输到 PC 的不同方法。