Sftpman
你可以使用 sftpman (一个 SSHFS 助手) 来挂载一个远程系统 - 通过 SSH 访问 - 到本地文件夹。
sftpman 提供命令行工具 (sftpman) 和基于 iced 的前端 (sftpman-iced, 参见 截图),每个单独打包。
使用 sftpman,你首先设置(定义)你的远程文件系统,然后你可以轻松地挂载/卸载它们(通过一个命令或点击)。
安装
这里有 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
移除已定义的文件系统
要从 sftpman 的列表中移除已定义的文件系统,请执行
$ sftpman rm machine-id
了解更多
要查看 sftpman 支持的更多命令和选项的列表,请查阅帮助
$ sftpman help
故障排除
sftpman 可以对环境执行一些基本检查,这可能会发现一些潜在的问题
$ sftpman preflight_check
如果 GUI 应用程序在挂载时没有询问你密码(当使用基于密码的身份验证或受密码保护的 ssh 密钥时),你将需要安装一个 ssh askpass 工具,参见 #挂载/卸载。
当使用密钥进行身份验证时,从小处着手,并通过手动尝试确保 SSH 连接实际工作,然后再尝试使用 sshfs 和 sshfs 周围的助手(如 sftpman)。一些常见问题可以通过查阅 Using SSH Keys#Troubleshooting 来解决。
另请参阅 SSHFS#Troubleshooting。