如何使用 SFTP 协议在本地和远程机器之间传输文件

什么是 SFTP?

简单文件传输协议 (SFTP) 是一种协议,用于通过 Internet 在两个设备之间传输文件。 它运行在文件传输协议 (FTP) 和 安全外壳 (SSH) 协议。

该协议在传输文件的同时,还可以防止密码嗅探、中间人攻击和敏感数据泄露。 它还借助加密和加密哈希函数保持数据的完整性。 它还在授予访问权限之前对客户端和服务器进行身份验证。 这允许文件的安全传输。

安装指南

在本教程中,我将向您展示如何使用这个超级方便的文件传输协议在本地和远程机器之间轻松交换文件。

对于本指南,我使用了 Linux Mint Cinamon 20.02 作为我的本地机器和 Ubuntu 20.04 LTS 作为我的远程机器。

本教程分为两部分。 在第一部分中,您将看到如何将文件从远程机器传输到本地机器。 在另一部分中,您将看到如何将文件从本地机器传输到远程机器。

让我们开始吧!

将文件从远程机器传输到本地机器

第 1 步:SSH 到远程机器

第一步是与远程计算机建立 SSH 连接。 为此,首先,使用以下命令成为超级用户:

sudo -i

现在您已成为超级用户,通过 ssh 连接到您要与之通信的远程计算机以获取文件。

ssh [email protected]

第 2 步:找到要传输的文件

然后,找到要复制的文件。 在本教程中,我将创建一个新文件以将其传输到我的本地计算机。

为此,我将通过运行以下命令进入 /etc 目录:

cd /etc

在 touch 命令的帮助下,我将创建一个名为 transfer.txt 的新文件。

touch transfer.txt

步骤 3:与远程机器建立 SFTP 连接

现在,我们将使用 sftp 连接到远程机器,如下所示:

sftp [email protected]

如果你看到 sftp 是这样写的,那说明你处于 sftp 模式。 现在本地和远程机器可以使用这个协议交换文件。

第 4 步:检查 sftp 与哪些目录交互

在继续传输文件之前,让我们先浏览一下以了解 sftp 与哪些目录交互。 运行以下命令以了解您当前的工作目录:

pwd

要查看本地机器的当前工作目录,我们将使用:

lpwd

我们还可以更改要与之交互的目录。 它包含在本指南的第二部分中。

第 5 步:传输文件

让我们转到我们创建 transfer.txt 文件的 /etc 目录。

cd /etc

要将文件从远程机器发送到本地机器,我们使用 get 命令后跟文件名,如下所示:

get transfer.txt

现在使用以下命令进入本地系统的根目录:

cd ~

使用 ls 查看目录中的所有文件。

如您所见,transfer.txt 文件现在位于我们的本地计算机中。

关闭 sftp 会话后,您可以将文件从根目录传输到计算机上的任何其他文件夹。

将文件从本地机器传输到远程机器

现在我们已经了解了如何将文件从远程机器传输到本地机器,让我们看看我们可以如何反方向进行。

我们在本地机器上的以下目录路径中还有另一个文件 test.txt:

/home/azifa/Downloads/folder

从这里我们将把它传输到我们的远程机器上。

第 1 步:使用 SFTP 连接到远程计算机

sftp [email protected]

第二步:改变sftp交互的本地目录

本地当前工作目录是:

lpwd

正如我之前告诉你的,我们可以更改我们希望 sftp 与之交互的本地目录。 为此,请使用 lcd 命令:

 lcd /home/azifa/Downloads/folder

在此之前,sftp 与本地机器的根目录进行交互。 现在它将与 /home/azifa/Downloads/folder 目录交互。 您可以使用以下命令进行确认:

lpwd

第 4 步:传输文件

接下来,我们使用 put 命令将文件从本地机器传输到远程机器。

运行 ls 命令查看文件是否已成功传输到远程机器的 /home 目录。

ls

是的,我们传输的文件在远程机器中。

现在您可以使用简单的 bye 命令结束会话。

bye

在本文中,我向您解释了借助称为 SFTP 的文件传输协议在远程计算机和本地计算机之间传输文件是多么容易。 使用这种方法,您可以安全地交换大文件,因为它是一种安全协议,可以加密您的数据以进行保护。

要了解如何在 Linux Mint 20 上设置 ProFTPD 服务器,请访问:

Install ProFTPD on Linux Mint 20