对于开发者来说,终端是一个熟悉的工具,但有时我们希望在 GUI(图形用户界面)环境中直观地管理文件和目录。特别是在需要连接到专用终端的服务器时,移动文件或了解结构的任务可能会感觉繁琐。

此时,SFTP(SSH 文件传输协议) 和支持它的本地 GUI 文件浏览器就显得非常有用。它就像是在处理我本地电脑的文件夹一样,可以轻松浏览和管理远程服务器的文件系统,真是一种魔法般的方法!

同时使用 GUI 文件浏览器和终端的场景


什么是 SFTP?

SFTP 是基于 SSH(安全外壳)协议进行文件传输的方式。顾名思义,它提供了类似 FTP(文件传输协议)的功能,但由于 SSH 强大的 加密功能,因此能够更加 安全地 进行文件的发送和接收,是其一大优势。

  • FTP vs. SFTP: FTP 以明文形式传输用户名、密码和文件内容,因此存在安全隐患。而 SFTP 通过 SSH 隧道加密所有通信,敏感信息也可以放心传输。
  • 除了文件传输的其他功能: 除了简单地传输文件外,还可以浏览远程服务器的文件系统、创建/删除目录以及更改文件权限等多种文件管理操作。

我们通常使用的 ssh 命令是通过终端访问远程服务器并执行命令,而 SFTP 则可以理解为 专注于文件系统访问


SFTP 与 GUI 文件浏览器的联动:无需终端的文件管理

在 Linux GUI 环境中,只需在基本文件浏览器(例如 Ubuntu 的 Nautilus,KDE 的 Dolphin)中输入 SFTP 地址,即可访问远程服务器,并以 GUI 环境管理文件。这是一个可以极大提高开发工作流的强大功能。

连接方法(以 Linux 为例)

  1. 打开文件浏览器: 打开您使用的 Linux 文件浏览器,例如 Nautilus(文件)、Dolphin 等。

  2. 选择 '+其他位置' 或 '网络浏览': 通常位于文件浏览器左侧边栏的底部。

  3. 输入服务器地址: 在地址输入框中输入如下格式的 SFTP 地址。

    sftp://[用户名]@[目标主机]:[端口]

    • [用户名]:用于连接远程服务器的用户帐户名。(如果本地用户名和远程服务器用户名相同,可以省略。)
    • [目标主机]:远程服务器的 IP 地址或域名。
    • [端口]:SSH 端口号。如果使用 SSH 默认端口(22),则可以省略。
      • 示例:sftp://myuser@myremoteserver.com:2222(使用 2222 端口时)
      • 示例:sftp://admin@192.168.1.100(使用默认 22 端口时)
      • 示例:sftp://myremoteserver.com(使用用户名和端口均为默认值时)
    • 输入认证信息: 会弹出通过 SSH 密钥或密码进行认证的窗口。根据您的服务器访问方式输入信息,然后点击 '连接' 或 '认证' 按钮。

    • 使用 SSH 密钥时: 可能会出现询问该密钥密码(passphrase)的窗口。如果不设置 passphrase,则会自动识别 id_rsa 或 id_ed25519 文件并立即连接。

    • 使用密码时: 输入服务器访问密码。
  4. 连接完成: 如果认证成功,远程服务器的文件系统将在本地文件浏览器中挂载。现在您可以像处理本地磁盘一样复制、移动、删除服务器文件或创建新的目录。

  5. 将连接的服务器通过 鼠标右键点击 添加到收藏夹后,您可以随时像使用本地机器的挂载驱动器一样使用服务器的文件系统。

实际 Nautilus(Ubuntu)中的示例:

  1. 打开 Nautilus。
  2. 在左侧边栏点击 + 其他位置
  3. 在底部的 连接到服务器 输入框中,例如输入 sftp://myuser@myremoteserver.comsftp://myuser@123.45.67.89:2222,然后点击 连接 按钮。
  4. 在认证弹窗中输入密码或 SSH 密钥的密码。
  5. 成功连接后,myremoteserver.com 的主目录将出现在 Nautilus 中,您可以像浏览本地文件夹一样进行文件管理。

这种方式有什么用处?

这种基于 GUI 的 SFTP 访问在开发过程中为各种场景提供了极大的帮助。

  1. 直观的文件浏览和管理: 当您不熟悉终端命令(ls、cd、cp、mv、rm 等)或希望一目了然地了解复杂的目录结构时,这非常有用。可以轻松通过拖放来移动文件。 不必在终端反复输入文件名和路径名的便利之处简直太棒了。
  2. 脚本/配置文件编辑: 可以使用您习惯的 GUI 文本编辑器(VS Code、Sublime Text、Atom 等)直接打开和修改服务器的配置文件或脚本,这是对于感到使用终端基础编辑器(Vim、Nano)困难的用户尤其方便。
  3. 查看日志文件: 可以用 GUI 浏览器打开服务器的大量日志文件,下载到本地进行分析,或快速搜索特定部分等操作都很方便。
  4. 管理图片、媒体文件: 当需要直接查看服务器上的图片或媒体文件并进行预览时,GUI 环境效率更高。
  5. 非开发者协作: 非开发者的策划者或设计师等当需要访问并管理服务器的特定资源(例如图片、PDF 文档)时,可以提供 GUI 环境,而无需教授终端命令。

最后

利用 SFTP 的 GUI 文件浏览器集成,为不熟悉通过终端命令管理服务器文件的用户提供了创新的便利。此外,对于经验丰富的开发者,有时 GUI 的直观性也能在某些瞬间比终端更高效。

现在就打开您的 Linux 文件浏览器,输入 SFTP 地址,将远程服务器的文件掌握在您手中吧!您将发现 SSH 的另一个有用的面貌。

如果您对这个功能有任何疑问,随时可以问我!