如果您使用的是 Windows 并且需要安全地在 SSH 主机之间传输文件,那么 Windows 工具 WinSCP 可能是一个很好的选择。WinSCP 是一个 Windows 开源工具,允许您通过 SFTP、FTP、AWS S3 和 SCP 管理远程主机上的文件和目录。
如果 WinSCP 听起来像是一个有趣的工具,那么请查看这个 ATA 终极指南!在这个指南中,您将学习如何设置 WinSCP,并了解 WinSCP 如何帮助您在远程主机之间传输文件。
让我们开始吧!
先决条件
如果您想要跟着这个指南中的演示一起学习,请确保您具备以下条件:
- A Windows XP+ PC – This tutorial will use Windows 10 Enterprise.
- A remote SSH host – This tutorial will use an Ubuntu 18.04.5 LTS machine.
- Putty – 如果您想学习如何在 Putty 中打开 WinSCP 会话。
安装 WinSCP
在您开始使用 WinSCP 像专业人士一样处理文件和目录之前,您首先需要下载并安装它。让我们开始吧。
打开您喜欢的网络浏览器,导航至WinSCP 官方下载页面,并下载最新版本的 WinSCP。本教程将使用 v5.17.10 版本。
默认的WinSCP包将以英语提供,但您也可以下载其他翻译包。。
下载后,运行安装程序并按照提示进行操作,接受所有默认设置。在初始用户设置屏幕上,本教程将使用Commander风格的界面。该界面比简化版的Explorer界面具有更多功能。
选择界面
WinSCP有两个称为Commander和Explorer的用户界面。这些界面允许您通过典型的WinSCP(Commander风格)使用WinSCP,或使WinSCP类似于Windows文件资源管理器。
两种界面之间最大的区别在于WinSCP显示文件结构的方式。您可以在下面看到这些差异。


您可以随时更改界面。要更改它们:
1. 在WinSCP中,单击选项菜单,然后选择首选项。

2. 在环境类别下,单击界面。在这里,您可以看到如何选择界面。选择界面后,单击确定。

3. 关闭WinSCP,然后再次打开它。再次运行后,您会注意到WinSCP已更改为预期的界面。
本教程将使用默认的Commander界面。
连接到远程主机
你可以整天在WinSCP中处理本地目录和文件,但那并不是重点。你正在使用WinSCP来管理远程文件!现在让我们深入了解如何连接到远程机器!
在WinSCP中,有各种连接远程主机的方式(并保存连接)。首先,让我们专注于执行简单的一次性连接。要做到这一点,请单击会话菜单。您将看到一个新的登录窗口出现,如下所示。
这个窗口是您可以快速连接到远程主机或保存到称为站点的已知主机连接的地方,稍后您将了解更多相关信息。
如果您没有创建任何站点,该窗口将默认显示在左窗口中的新站点选项。此时,您无需担心站点。

要连接到远程主机,WinSCP需要一些参数:
- 文件协议 – 连接到远程主机的方法。WinSCP支持五种不同的协议来连接到远程主机。
- SFTP或SSH文件传输协议是一种允许您在安全网络上传输文件和管理所有文件活动的网络协议。通常较慢,因为它加密所有数据并等待数据包传输和确认。
- FTP或文件传输协议类似于SFTP,但使用此协议,您可以选择进行身份验证,该身份验证受SSL/TLS协议保护,或者如果远程服务器允许,您可以匿名连接。FTP比SFTP协议更快。
- SCP或安全复制协议是一种通过SSH将文件从一台机器安全复制到远程机器的协议。SCP仅在类Unix平台上受支持。复制文件的速度比SFTP快。
- WebDAV或Web分布式作者ing和版本ing是超文本传输协议(HTTP)的扩展,允许用户编辑和管理存储在Web服务器上的文档和文件。
- S3或亚马逊简单存储服务是由亚马逊网络服务提供的Web服务。这是一种支持多种协议(如REST,SOAP等)的存储服务,但WinSCP使用REST与S3服务交互。
- 主机名 – 远程主机的主机名或IP地址。
- 端口号 – 远程主机的 文件协议 监听的TCP端口号。大多数SSH实现使用 默认的TCP端口22 进行监听。
- 用户名 – 用于连接到远程主机的用户名。
- 密码 – 用于连接的用户名的密码。
填写完所有连接信息后,点击 登录 按钮连接到远程主机。
连接后,WinSCP将显示远程主机的主目录在右侧,并显示当前会话的连接用户名和主机,如下所示。

此时,您现在可以开始在本地和远程会话之间导航目录并管理文件。
导航目录
当WinSCP与主机创建远程会话时,它将使您进入您连接的用户帐户的主目录。很可能,这个目录不是您想要进入的目录。当这种情况发生时,您必须开始导航以找到您想要处理的目录和/或文件。
打开上级目录
就像Windows Explorer一样,WinSCP在本地和远程会话窗格中将目录表示为文件夹。您可以像平常一样点击并进入目录。但与Windows Explorer不同的是,WinSCP没有向上箭头,允许您导航到父目录。
A file system stores directories in a hierarchical fashion with parent and child directories. If you’re in a child directory, double-click on the two dots (..
), as shown below. You’ll see that WinSCP changes the directory to the current directory’s parent.

打开特定目录路径
虽然您可以使用WinSCP导航文件系统以查找目录,但如果您事先知道它们,也可以打开特定的目录路径。
如果您知道要打开的特定目录路径,请单击Local菜单 —> 转到 —> 打开目录/书签,如下所示。然后,WinSCP将打开一个名为打开目录的窗口,提示您使用浏览按钮输入路径或浏览到一个路径。

您会注意到菜单栏中有一个Local和一个Remote选项。这两个选项包含类似的操作。Local菜单在本地计算机上执行操作,Remote菜单在远程计算机上执行操作。
添加目录书签
如果您经常访问某些目录,WinSCP允许您将其添加到书签中。将目录添加到书签中将创建一个常见的目录列表,您可以随时轻松返回。
创建目录书签
在WinSCP中将目录添加到书签:
1. 单击目录窗格中要添加书签的目录。
2. 点击本地菜单 -> 添加到书签。此操作将弹出确认框,如下所示。
请注意添加到共享书签复选框。WinSCP具有会话和共享书签。会话书签仅适用于当前会话。当您断开会话时,您的书签将消失。另一方面,共享书签保留保存,您必须手动删除它们。

3. 点击确定确认书签。
打开书签目录
一旦您创建了一个或多个书签,您就可以快速导航到这些书签目录。操作如下:
1. 导航到本地菜单 -> 转到 -> 打开目录/书签。

2. 选择所需的书签目录,如下所示。
在下面的屏幕截图中,您将看到C:\Users\Public条目出现在共享书签选项卡中。这个书签存在是因为在保存书签时,启用了添加到共享书签复选框。

3. 点击确定打开书签。
点击确定后,WinSCP将直接带您进入目录。
浏览文件
在WinSCP中,您将会频繁处理文件,因此了解其基本操作是很重要的!除了在文件系统中点击外,WinSCP还具有一些您可能不知道的功能。
查找文件
如果您想在具有数百或数千个文件的目录中将一些文件传输到/从远程会话,您无需点击到找到它们。相反,您可以使用WinSCP的过滤功能来精确筛选您要查找的文件。
要在文件窗格中筛选出您不需要的所有文件:
1. 单击本地(或远程)菜单,然后单击过滤器。此操作将打开过滤器对话框,您可以在其中提供文件掩码。
2. 在文件掩码框中,根据所需的语法提供一个文件掩码。

3. 单击编辑按钮,您将看到一种创建文件掩码过滤器的图形方式。

4. 单击确定,您将只看到与您的文件掩码匹配的文件。
文件排序
在WinSCP中,您可以根据名称、扩展名、修改日期等各种标准对本地或远程文件窗格中的文件进行排序。
要对文件进行排序,请单击本地(或远程)菜单 -> 排序,然后选择要对文件进行排序的属性。

显示隐藏文件
您是否没有看到您知道存在于本地或远程计算机上的所有文件?它们可能是隐藏的。要在WinSCP中显示隐藏文件:
点击 选项 —> 首选项。在 首选项 窗口中,点击 面板 部分并选择 显示隐藏文件(Ctrl-Alt-H)。
WinSCP有几个键盘快捷键可以避免四处点击。
告诉WinSCP显示隐藏文件后,它将允许您像预期的那样管理这些文件。

选择文件
在传输文件之前,您必须首先选择要传输的文件。如果您只是复制几个文件,只需导航到您需要的目录,点击一个文件,或按住Ctrl或Shift键并选择多个文件即可。
有时,您会有许多符合各种条件的不同文件需要传输。在这种情况下,可以查看 标记 菜单。在WinSCP中,“标记”允许您为特定目录中的文件创建过滤器,然后选择它们全部。
例如,也许您有一个打开的大型文件目录,并且想要只传输具有.ps1文件扩展名的文件。要做到这一点:
1. 点击 标记 菜单并点击 选择文件…,如下所示。

2. 接下来,指定您希望每个文件匹配的文件掩码。

您会注意到选择文件和过滤器功能都使用相同的方法来指定文件掩码。
如果您需要应用更高级的过滤器,可以点击编辑按钮,这将显示其他可应用于过滤器的选项。

点击确定以确认选择的过滤器,您会看到当前目录包含所有与选择的过滤器匹配的子目录和过滤器都被选中。

文件传输
现在您已经按照自己的喜好定制了WinSCP,连接到了远程会话,并且知道如何在本地和远程文件系统之间导航。现在是时候真正开始使用WinSCP,传输一些文件了!
在WinSCP中,您有许多不同的方式可以传输(甚至同步)本地和远程文件。让我们从最简单到最高级逐个介绍每种方法。
拖放
当您连接到远程主机时,传输文件的一种最简单的方法是将一个或多个文件拖放到本地和远程窗口之间。
要通过拖放复制文件,首先导航到您想要传输文件的本地和远程目录,然后点击并拖动一个或多个文件或目录。
您还可以使用键盘使用箭头键选择项目,使用空格键或插入键选择它们。

复制粘贴
如果拖放不适合您,您还可以复制并粘贴文件到/从远程主机。为此,选择一个或多个文件,右键单击它们,然后选择复制。

在另一个窗口中,导航到您想要复制刚刚选择的文件的目录,在窗口中右键单击,然后选择粘贴。
调用高级传输
拖放或复制粘贴文件确实可以使用WinSCP传输文件,但您的选项有限。例如,默认情况下,WinSCP使用二进制传输模式。也许您更愿意使用文本模式?您可以设置许多不同的选项来执行WinSCP中的文件传输。
要调用高级传输,请选择要传输的文件,然后按F5键。按下此键将弹出一个上传窗口,以选择各种传输选项。
在这一点上,您有几个选项。您可以通过单击确定执行标准传输,或者您可以在此处更改文件掩码以仅传输某些文件。

但是,如果您单击传输设置按钮,您将拥有更多此教程不涵盖的选项。在传输设置窗口中,您可以更改传输模式,在上传后设置文件权限,保留本地时间戳等。

背景传输和传输队列
如果您在这里和那里传输文件,通常情况下,您会通过WinSCP在前台传输文件。您可以传输文件,观看进度并继续进行其他操作。但是,如果您有许多不同的文件,可能需要花费很多分钟甚至几个小时,或者有一个自动化例程,您还可以在后台传输文件并使用WinSCP队列。
使用后台传输,您可以通过并行传输加快文件传输速度,或者在文件传输时释放WinSCP控制台,以便进行其他操作。
要在后台传输文件,请调用如前一部分所述的高级传输。在传输设置对话框中,您将看到一个名为在后台传输(添加到传输队列)的选项。

通过在执行传输时选择在后台传输选项,WinSCP将立即将传输添加到传输队列,如下所示。传输队列是WinSCP跟踪所有后台传输的地方。
一旦传输进入传输队列,您可以在WinSCP中执行其他活动,包括启动另一个传输!传输队列是同时执行各种传输并将它们全部排队而不是等待每个传输完成的好方法。

对于每个后台传输,WinSCP都会使用创建会话时定义的相同会话选项打开到服务器的单独连接。这些新连接保持在后台,并用于将来的传输。
默认情况下,传输队列一次只会尝试执行两次传输。您可以通过打开首选项菜单并在后台部分下更改同时进行传输的最大数量来更改此行为,如下所示。

在后台传输首选项菜单中,您可以更改传输队列的行为。

管理 WinSCP 站点
尽管 WinSCP 可以让您快速连接到远程主机,但默认情况下不会保存这些连接。您的环境中可能有许多不同的主机,要记住主机名和凭据可能会变得很烦琐。
假设您有一个启用了 SSH 的远程主机,您经常连接到该主机。您希望保存该连接,以便您可以浏览到该主机并自动连接。要创建保存的连接,或者 WinSCP 所称的站点,您可以保存到远程主机的连接,以便您只需浏览到一个站点并连接。
创建 WinSCP 站点
要创建 WinSCP 站点并保存您的会话以供以后使用:
1. 点击会话菜单,如连接到远程主机部分所述,并提供所有必要的连接信息。
2. 点击保存按钮。

3. 接下来,为保存的连接提供一个站点名称和一个可选的文件夹,然后点击确定。

如果你只想保存少量连接,不需要文件夹;但如果你使用WinSCP连接数十甚至数百个不同的主机,将连接分类到文件夹是一种很好的方式,以便以后更容易找到这些连接。
现在,在登录窗口中,你会看到你的新站点。这一次,与会话属性可编辑不同,它们都变成了灰色。属性现在保存在一个站点中。

4. 最后,点击登录测试站点的连接。点击登录后,连接到新站点开始。

5. 选择是将服务器主机密钥添加到系统缓存中,以便WinSCP可以信任远程主机。如果信任远程主机的密钥详细信息,点击是按钮。
你不必保存服务器主机的密钥。如果点击否,仍然能够连接到远程主机,但每次都会收到此提示。

创建了至少一个站点后,现在可以通过点击会话菜单 —> 站点 并点击要连接的站点来找到它们,如下所示。

编辑、重命名和删除WinSCP站点
一旦您创建了一个网站,就可以根据需要对其进行修改。也许您需要编辑现有网站的属性,比如更改主机名或用户名,您也可以在WinSCP中进行这些操作。
1. 单击会话菜单项,这将再次打开登录窗口。您将在登录窗口中看到所有保存的站点。
您也可以通过单击会话菜单→站点→站点管理器来打开登录窗口/站点管理器。
2. 找到您想要编辑的站点,在站点上右键单击,然后单击编辑,如下所示。之前灰显的选项现在可编辑。
要重命名或删除站点,请单击删除或重命名菜单项。您甚至可以通过单击克隆到新站点来创建共享相同用户名的站点副本。

3. 编辑完所需属性后,单击保存按钮,如下所示。

在站点管理器中,您将看到一个高级按钮。WinSCP将站点存储在文件中。如果需要修改文件本身中站点的设置,您可以在这里编辑原始设置并修改您可能不经常需要的高级设置。
备份和恢复所有站点
也许您已经创建了数十个网站并获得了新电脑。现在怎么办?WinSCP没有与之同步的云服务。您必须手动转移这些网站。为此,WinSCP有一个称为配置的概念,允许您备份和恢复所有网站。
要导出所有保存的网站:
打开站点管理器,点击工具按钮。点击导出/备份配置,这将提示您保存所有网站的INI文件到您选择的位置。

要导入保存的配置,请点击导入/恢复配置。导入配置将覆盖所有现有会话!
从其他工具导入网站
如果您正在使用流行的Putty SSH客户端并且已经在其中保存了会话,那么没有理由重复发明轮子。您可以直接将所有这些会话导入WinSCP。
要从其他工具如Putty导入站点:
1. 打开会话管理器。
2. 在左侧站点菜单的任何位置右键单击,然后单击导入站点。WinSCP将弹出导入站点窗口,显示所有支持的来源,可以从中导入站点,如Putty,FileZilla和known_hosts。

3. 选择要从中导入的来源。然后,WinSCP应该在下面的框中为您提供它能够导入的每个站点。
选择您想要导入的每个会话,或单击全选/取消全部按钮,然后单击确定以导入会话。

会话记录
如果您需要返回到远程会话中发出的命令,您需要一种保存历史记录的方法。WinSCP提供了一个会话记录功能来实现这一点。打开首选项菜单项,然后单击记录选项,您将看到一种启用会话记录的方法。
不用担心。除非您选择记录密码和其他敏感信息复选框,否则密码永远不会记录在任何日志中。

要启用会话记录,请选中启用级别上的会话记录复选框并提供日志级别。
会话记录选项
在会话日志中,WinSCP以一种因会话使用的协议而异的无结构方式记录事件。会话日志通常用于故障排除目的。
您可以为会话日志定义几种不同级别的日志记录。
- 简化 – 最不精细的日志记录级别。
- 正常 – 此日志记录级别通常足以满足大多数故障排除或审核需求,并且是默认值。
- 调试1/调试2以获得极端精细的日志记录。
日志路径是WinSCP将保存日志文件的位置。在这里,您可以指定动态条件,以便根据日期/时间属性等保存日志文件。
您可以使用一系列模式来创建所需的日志文件名,例如:
- 年 –
!Y
- 月 –
!M
- 日 –
!D
- 时间 –
!T
- 主机名 –
!@
- 会话名称 –
!S
- 进程ID –
!P
- 感叹号 –
!!
通过启用在达到一定大小后旋转日志文件复选框来限制日志文件的大小增长。在此下拉菜单中,您可以使用K
、M
和G
表示字节。如果日志文件增长过大,WinSCP将创建一个带有扩展名.1
、.2
等的副本。
如果您已经处于一个会话中并启用了日志记录,则在启用日志记录时将开始记录。WinSCP不会在日志文件中记录所有先前的会话历史。
XML日志
您将在会话日志部分配置要记录的内容以及如何记录。会话日志将日志记录到一个非结构化文本文件中。但是,如果您需要将来进行更结构化的解析,您应该勾选启用XML记录到文件。
通过启用XML记录,WinSCP将生成一个结构化的XML文件。此格式包含的信息比会话日志少,但可用于脚本目的。
管理工作空间
也许,您经常使用一组全天候打开的网站。您通常需要以某种方式访问这些主机。与其每天打开每个网站,不如将它们全部保存在一个工作空间中以一次性保存所有连接的站点。
保存工作空间
也许您打开了数十个网站,想要随时回到它们中的任何一个。您需要创建/保存一个工作空间。要执行此操作,请单击会话菜单,然后选择保存工作空间。然后,WinSCP将提示您选择保存工作空间文件的位置。

在另存工作空间为对话框中,提供一个名称,并选择是否保存任何密码。
您还会看到一个创建桌面快捷方式选项。如果选择此选项,WinSCP将创建一个名为我的工作空间的桌面快捷方式。这个桌面快捷方式很方便,因为如果没有它,您将不得不使用会话管理器打开工作空间,如下一节所述。
您还会看到一个启用此工作空间的自动保存选项。这个选项很方便,因为您不必像上面演示的那样手动保存工作空间。

打开/恢复工作空间
一旦您在计算机上某个位置保存了一个工作空间,您就需要以某种方式打开它。要打开/恢复工作空间:
打开站点管理器,在左窗格中找到工作空间,右键单击工作空间,然后选择登录。
在上次关闭WinSCP时保存的工作区将在登录对话框打开时自动选择

在远程主机上运行SSH命令
通过使用内置的命令行框、自定义命令甚至Putty等功能,您可以快速在连接的主机上运行各种短命令。
WinSCP命令行
如果您需要运行简单的SSH命令而无需打开单独的SSH客户端,可以使用WinSCP命令行功能。要访问此功能,请单击选项菜单,然后选择命令行,如下所示。然后,您将看到底部出现一个命令框。

打开命令框后,输入您希望的任何终端命令,WinSCP将在远程主机上执行它。例如,输入ifconfig
,如下所示,以发现远程主机的IP地址信息。
不要运行需要用户输入的命令。WinSCP命令行不支持交互式命令。

自定义命令
假设您发现自己在远程主机上一遍又一遍地运行特定命令,或者您想针对远程文件窗格中的所有文件运行特定命令。如果是这样,WinSCP的自定义命令功能就是为您设计的。
自定义命令是预先配置的命令,可以包含代表环境属性的变量,例如您连接的主机、您连接的用户等。自定义命令将常见操作模板化。
例如,运行自定义命令,如cat "!"
,会在远程面板中的每个选定文件上运行cat
命令。或者,您可以只是有一个复杂的SSH命令以保存并稍后运行。
要设置和运行自定义命令,请单击Commands菜单,然后单击Static Custom Commands。在这个菜单中,您将看到如何输入临时自定义命令或保存一些自己的命令。
为了演示,请单击Enter。Custom Command窗口将出现。

在Custom Command窗口中,键入echo !S
以查看WinSCP如何将!S
占位符转换为会话URL,并单击OK。
您可以在WinSCP Custom Commands documentation page中找到所有占位符。

请注意,由于选择了Show results in terminal选项,WinSCP弹出了与命令行功能一样的Console窗口。在下面,您可以看到!S
被翻译为sftp://automate:automate
,这是会话URL。

使用Putty
一旦您在WinSCP中创建了会话,您无需使用WinSCP执行进一步的任务。实际上,您可以将该会话传递给流行的Putty SSH客户端。
如果您当前正在WinSCP会话中,请通过单击Commands菜单并单击Open in Putty在Putty中打开WinSCP会话。您会发现Putty会打开并连接到您在WinSCP中连接的远程主机。
默认情况下,Putty将提示输入密码,除非您为特定机器添加访问密钥ID和秘密密钥。

清理
WinSCP在文件系统和注册表中在系统上存储了几种类型的数据。例如,如果您在共享计算机上,您可能希望清理所有这些数据。要这样做:
1. 打开站点管理器。
2. 单击Tools按钮。
3. 单击Clean Up。然后您将看到一个Cleanup application data框,如下所示。

4. 选择每个项目(通常是General configuration,即存储在注册表中的所有工作区和站点相关信息)和Random seed file,其中包含WinSCP启动时用于生成其加密随机数生成器的随机生成数据。
保持更新和获取帮助
最后,保持WinSCP最新以获取最新的错误修复和功能非常重要。如果您认为您的版本已经过时,请单击帮助菜单,然后单击检查更新。WinSCP将检查新版本,并在存在新版本时提示您安装新版本。
帮助菜单也是查找WinSCP文档、捐赠给开源项目等的好地方。

结论
WinSCP是一个方便的免费工具,可以帮助您传输文件,还可以在计算机上运行远程命令。通过其内置站点、各种选择和传输文件的方式,您无法击败它的价格。
现在您是WinSCP大师了,您打算如何使用它?
Source:
https://adamtheautomator.com/the-winscp-gui-the-ultimate-guide/