如何在 macOS 中使用 SFTP 和 rsync 进行文件传输

SFTP和rsync是两个可以帮助您跨网络和Web传输文件的工具。以下是在 macOS 中使用它们的方法。

在许多情况下,您需要在 LAN 上的两台计算机之间、办公室、Web 或远程服务器之间传输文件。如今,许多员工使用Google Drive或Dropbox等云服务进行此类转移。

但是,有更复杂的工具可用,可在进行网络文件传输时为您提供更大的灵活性和准确性。两个这样的工具是SSH文件传输协议(SFTP)和rsync或远程同步。

我们将首先讨论 SFTP,然后看看 rsync 以及如何使用它通过网络智能地传输和同步文件。

FTP 或文件传输协议可以追溯到 1971 年,当时其原始规范在 RFC 114 中发布,后来在 1980 年切换到 TCP/IP 期间进行了修订,并在 1994 年 (RFC 1579) 和 1997 年再次修订(RFC 2228)。后两个标准添加了被动模式和匿名服务器登录(如果服务器配置为被动模式)。

FTP 遵循客户端/服务器模型,其中用户使用客户端应用程序登录到 FTP 服务器,然后使用客户端应用程序将文件传输到服务器或从服务器传输文件。FTP 协议使用两个通信通道,一个用于控制,一个用于数据传输。

大多数标准 FTP 服务器使用端口 21 进行连接。可以使用其他端口,具体取决于服务器的配置方式。

被动模式主要用于防火墙后面的服务器,这些服务器可以协商要使用的端口号。客户端在被动模式下建立连接后,服务器将传输要使用的端口号。

大多数FTP连接以文本模式或二进制模式传输文件,尽管其他两种很少使用的模式(EBCIDIC和Unicode)是可能的。

标准FTP连接中一个明显的遗漏是,两个方向的所有数据都以纯文本形式以明文形式发送 – 包括用户的登录名和密码。显然,在当今世界,您希望尽可能避免使用普通FTP。

进入SFTP

Secure Shell于1994年向公众发布时,它提供了一种使用安全的加密隧道登录远程UNIX和基于Linux的计算机的方法。通过 SSH 隧道的所有数据都使用现代加密标准(如 AES 或其表亲 DES)进行端到端加密。

其他密码,如arcfour和河豚也可以使用,但现在不鼓励使用现代标准AES。SSH 使用公钥基础结构 (PKI) 身份验证来验证用户的身份。AES最初以Rijndael的名字而闻名,由美国国家标准与技术研究院(NIST)于2001年成立。

SSH文件传输协议(不要与早期的,现已过时的简单文件传输协议混淆)在跨网络传输文件时使用相同的端到端加密 – 从而确保文件数据也是安全的。

有四个 RFC 定义核心 SSH 协议 (4251-4254),RFC 4716 定义 SSH PKI 密钥文件格式。SFTP文件传输协议本身仍然是IETF草案。

虽然 FTP 服务器倾向于使用端口 21,但通过 SFTP 的连接通常使用端口 22。

Mac SFTP 應用程式

macOS有几个不错的SFTP客户端,包括免费的FileZilla(免费,Mac App Store上的Pro版售价25美元),来自波特兰或波特兰的Panic软件的传输(45美元)和Cyberduck(Mac App Store上的25美元)。

Cyberduck还提供了一个名为Mountain Duck(40美元)的很酷的外部文件系统插件,它与macOS Finder集成,允许您在桌面上安装SFTP服务器,就好像它们是磁盘一样。

Cyberduck和Transate还支持WebDAV和各种云文件服务器,如Amazon S3,Dropbox,Google Drive,Microsoft OneDrive和Backblaze。传输还支持另一种安全的FTP标准:带有TLS / SSL的FTP。

在“传输”中的连接窗口中,单击任何连接窗口中的“协议:”弹出菜单以切换到 SFTP。执行此操作时,还将出现一个带有密钥图标的小按钮 – 允许您设置用于连接的本地SSH密钥。

54370-110050-asimov2-xl
在传输的连接窗口中设置协议、服务器名称、用户和密码以及被动模式。

所有这些SFTP应用程序都很棒,但传输长期以来一直被认为是Mac上的黄金标准,事实上,传输可以追溯到1990年代后期和Mac OS 9。1996年,苹果发布了自己的FTP客户端应用程序,名为Mac OS 9的CyberDog,该应用程序早已停产。

CyberDog是苹果在90年代末不幸的基于OpenDoc文档的架构的受害者。

54370-110049-cyberdog-xl
Cyberdog,大约在1996年来自苹果。

查找器 FTP 连接

许多人不知道,您实际上可以使用主菜单中Finder的Go->连接到服务器窗口连接到大多数常规FTP服务器。

只需使用 ftp:// 前缀和 FTP 服务器的名称或 IP 号即可。当系统提示输入用户名和密码时,请输入您的凭据进行连接。

54370-110051-asimov-xl
在 Finder 的“连接到服务器”窗口中使用 ftp:// 协议。

不幸的是,macOS的连接到服务器功能目前不支持SFTP连接 – 这是Apple早就应该做的事情。

命令行替代方法是使用 MacFUSE 和 SSHFS 在终端中通过 SSH 传输文件。您可以使用自制软件来安装两者:

brew install osxfuse sshfs

对于终端类型中的 sshfs 终端使用说明:

man sshfs,然后按回车键

在 Finder 的“连接到服务器”对话框中,如果服务器支持匿名连接,则可以使用电子邮件并将密码字段留空或使用“匿名”作为密码。

如果您想连接免费的公共测试 FTP 服务器,请尝试使用 Apple 的旧版存档服务器,ftp.asimov.net:

建立连接后,Finder 将像安装任何其他网络磁盘一样将远程 FTP 服务器挂载到桌面上。请注意,与FTP服务器之间的任何和所有文件传输都将以明文形式传输文件数据,而无需加密。

54370-110052-asimov3-xl
苹果的asimov FTP服务器。迎接您的是“酒吧”或公共文件夹。

在大多数可用的商业FTP应用程序中,文件传输的使用相当简单:只需将文件和文件夹从Mac拖动到连接的服务器的窗口,文件传输就会开始。

若要以其他方式将文件从服务器移动到 Mac,只需执行相反的操作:将文件或文件夹从其中一个应用程序中连接的服务器的 FTP 窗口拖到 Mac 上的磁盘、文件夹或桌面。

FileZilla 等一些应用程序会在文件传输过程中显示进度条,以及显示传输窗口中所有活动的文本日志。其他任务(如传输)显示一个单独的任务窗口,每个任务在带有进度指示器的单独线程中运行。

线程应用运行更流畅,转移取消通常响应更快。

作为脚注,请注意,某些 FTP 服务器会限制来自同一客户端或 IP 的最大同时连接数,因此,如果您要连接到的服务器具有此类限制,则需要在客户端应用中设置相同的限制。如果您不这样做,并尝试更多超过设置限制的同时传输,则服务器可能会在您开始传输后断开您的 FTP 应用程序 – 您必须重新开始。

在“传输”中,此设置位于应用程序的“设置”窗口中的“传输”选项卡下:

54370-110054-transmit1-xl
在传输的设置中设置最大文件传输次数。

使用 rsync 同步文件

Linux/UNIX 命令 rsync 于 1996 年作为 Andrew Tridgell 博士论文的一部分首次亮相。此后,它已被移植到许多现代操作系统,包括macOS,OpenBSD和Windows上的Cygwin。

rsync的主页位于 rsync.samba.org,目前是开源的,由Wayne Davidson在GitHub上维护。还有一个示例页面,包括使用 rsync 作为备份工具的示例 bash 脚本。

rsync 也可以在守护程序(后台)模式下运行,该模式在运行时允许在支持它的应用程序中使用“rsync://”协议语法。

rsync 最强大的用途之一是以指定的时间间隔自动对计算机或磁盘进行增量备份。它不仅知道只传输新的或更改的文件,而且它甚至知道文件的哪些部分发生了变化,并且只在可能的情况下传输更新的部分。

在 macOS 上,rsync 从“终端”中的命令行工作,通常使用 SSH 在联网计算机之间连接和传输文件。

典型的 rsync 命令由命令组成,后跟一个空格,然后是要复制或更新的文件,后跟用户名和服务器 IP 或名称,用 @ 符号分隔,后跟一个空格,然后是服务器上要将文件或文件夹传输到的远程文件或文件夹位置。

例如,使用 Mac 上安装的用户名和当前 SSH 密钥将 Mac 上 i7 用户个人文件夹中名为“文件名”的文件发送到远程服务器“远程主机”。远程主机可以是服务器名称或 IP 地址。rsync /Users/i7/filename user@remotehost:remote-filename

在大多数情况下,源文件或文件夹首先在命令中指定,目标在末尾。在另一个方向(从服务器到本地计算机)同步文件时,使用相同的命令,但文件语法相反。

要在终端中获取可用于 rsync 的完整语法和选项,请键入:

man rsync,然后按回车键

安装

要在 macOS 上安装 rsync,请使用终端中的自制包管理器公式:

brew install rsync

要在 Homebrew 中保持 rsync 最新,请使用 update 命令:

brew update rsync

安装完成后,通过键入以下内容在终端中验证您的 rsync 安装:

which rsync,然后按回车键。

您应该看到:

/usr/bin/rsync

您可以通过键入以下内容来查看 Mac 上安装了哪个版本的 rsync:

rsync -v,然后按回车键。

您应该看到类似以下内容:

rsync version 2.6.9 protocol version 29

Copyright (C) 1996-2006 by Andrew Tridgell, Wayne Davison, and others.

Capabilities: 64-bit files, socketpairs, hard links, symlinks, batchfiles,

inplace, IPv6, 64-bit system inums, 64-bit internal inums

接下来是更多信息,并将 rsync 的所有选项打印到终端。

还有其他几种 rsync 自制公式可用,包括方便的.使用自制软件的搜索字段来查找它们。rsync-time-backup

编写完整备份脚本超出了本文的范围,但要做到这一点,您基本上需要用 bash shell 语法编写一个使用 rsync 的终端脚本并将其保存到.sh文件中。然后,您将通过使用定时 UNIX cron 作业或通过在后台运行的守护程序来经常运行脚本。

您还可以编写备份脚本,然后只需将其拖放到终端窗口上并按 Return 键即可随意手动运行它。

使用 rsync 语法作为源参数可以轻松指定文件、文件夹或整个卷。您可以使用 rsync 备份到另一个本地卷、网络服务器或互联网服务器。

还有一些依赖 rsync 的第三方备份应用程序,例如 rclone.org 和 Grsync,后者是 rsync 的 GUI 前端。

使用 rsync 作为备份机制使备份变得轻而易举,它足够智能,可以为您处理大多数备份细节。

未经允许不得转载:表盘吧 » 如何在 macOS 中使用 SFTP 和 rsync 进行文件传输