Sftpman
你可以使用 sftpman(一个 SSHFS 辅助工具)将可以通过 SSH 访问的远程系统挂载到本地文件夹。
sftpman 同时提供命令行工具(sftpman)和基于 iced 的前端界面(sftpman-iced,参见 截图),两者分别打包。
使用 sftpman,你首先设置(定义)远程文件系统,然后可以轻松地挂载/卸载它们(通过一个命令或一次点击)。
安装
你可能希望安装以下 2 个软件包。
- sftpmanAUR - 提供命令行应用程序 sftpman,同时也被 GUI 前端内部使用(作为库)。
- sftpman-icedAUR - 提供 sftpman-iced 应用程序,这是一个基于 iced 的 sftpman GUI 前端。
定义文件系统
由 sftpman 管理的每个文件系统都需要有一个唯一的名称/ID,该 ID 将用于管理系统以及作为其挂载路径的一部分。ID 为 my-machine 的系统将被本地挂载到 /mnt/sshfs/my-machine。
挂载期间与远程文件系统的身份验证可以使用密码、SSH 密钥 或将其委托给身份验证代理 (authentication-agent) 来完成。
使用命令行工具定义一个使用密码认证的新远程文件系统,请执行:
$ 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 工具,参见 #挂载/卸载。
在使用密钥进行身份验证时,请先从小步开始,在尝试使用 sshfs 及其辅助工具(如 sftpman)之前,先手动尝试确保 SSH 连接确实可行。一些常见问题可以通过查阅 Using SSH Keys#Troubleshooting 来解决。
另请参阅 SSHFS#Troubleshooting。