Sftpman

来自 ArchWiki

你可以使用 sftpman (一个 SSHFS 助手) 来挂载一个远程系统 - 通过 SSH 访问 - 到本地文件夹。

sftpman 提供命令行工具 (sftpman) 和基于 iced 的前端 (sftpman-iced, 参见 截图),每个单独打包。

使用 sftpman,你首先设置(定义)你的远程文件系统,然后你可以轻松地挂载/卸载它们(通过一个命令或点击)。

注意: 为了使用 sftpman 或其 GUI sftpman-iced,你首先需要有一个可用的 SSHFS 设置。

安装

这里有 2 个你可能想要安装的软件包。

  • sftpmanAUR - 提供命令行应用程序 sftpman,并且也被 GUI 前端在内部使用(作为库)。
  • sftpman-icedAUR - 提供 sftpman-iced 应用程序,一个基于 iced 的 GUI 前端,用于 sftpman

定义文件系统

每个由 sftpman 管理的文件系统都需要有一个唯一的名称/ID,这将在管理系统时以及在其挂载路径中使用。ID 为 my-machine 的系统将被本地挂载到 /mnt/sshfs/my-machine

与远程文件系统在挂载期间的身份验证可以使用密码、SSH 密钥或通过将其委托给身份验证代理来执行。

要使用命令行工具定义新的基于密码验证的远程文件系统,请执行

$ sftpman create \
--id "my-machine" \
--host "HOSTNAME_OR_IP" \
--user "USERNAME" \
--auth_type=password \
--remote_path "/REMOTE_PATH"

或者,如果你想使用 SSH 密钥进行身份验证(推荐)的等效操作

$ sftpman create \
--id "my-machine" \
--host "HOSTNAME_OR_IP" \
--user "USERNAME" \
--auth_type=publickey \
--ssh_key "/PATH/TO/PRIVATE_KEY" \
--mount_point "/REMOTE_PATH"

上述设置是定义 sftpman 可以挂载的新文件系统的最低要求。根据你的环境,你可能需要配置额外的选项(例如 --port,默认为 22)。要查看可用选项的完整列表,请执行

$ sftpman create --help

你也可以使用 GUI 应用程序更轻松地定义新的文件系统。

挂载/卸载

一旦你定义了几个文件系统,你可以使用它们的 ID 来挂载它们。

要挂载

$ sftpman mount my-machine

这会将文件系统挂载到 /mnt/sshfs/my-machine

要卸载

$ sftpman umount my-machine
注意: 为了让 GUI 应用程序能够在挂载时询问你密码,你需要安装某种形式的 ssh askpass 工具。参见 SSH keys#x11-ssh-askpass

移除已定义的文件系统

要从 sftpman 的列表中移除已定义的文件系统,请执行

$ sftpman rm machine-id

了解更多

要查看 sftpman 支持的更多命令和选项的列表,请查阅帮助

$ sftpman help

故障排除

sftpman 可以对环境执行一些基本检查,这可能会发现一些潜在的问题

$ sftpman preflight_check

如果 GUI 应用程序在挂载时没有询问你密码(当使用基于密码的身份验证或受密码保护的 ssh 密钥时),你将需要安装一个 ssh askpass 工具,参见 #挂载/卸载

注意: 如果挂载文件系统失败,sftpman 将会给你完整的 sshfs 命令及其输出。然后你可以使用该命令并手动运行它(可能在向其添加一些更多调试选项之后,这样你就可以看到更多输出)。

当使用密钥进行身份验证时,从小处着手,并通过手动尝试确保 SSH 连接实际工作,然后再尝试使用 sshfssshfs 周围的助手(如 sftpman)。一些常见问题可以通过查阅 Using SSH Keys#Troubleshooting 来解决。

另请参阅 SSHFS#Troubleshooting