将 sshfs 与 ssh ControlMaster 连接一起使用

将 sshfs 与 ssh ControlMaster 连接一起使用

我想在第一次建立 ssh 连接时使用 sshfs 自动挂载远程系统中的目录,并在最终断开连接时卸载该目录。

我目前使用 ssh 的 ControlMaster 工具,这样我只需在第一次连接到远程时输入密码。我经常同时运行多个 ssh 连接。

我想我可以在连接时从 ssh 运行一个脚本(我似乎记得有一种方法可以做到这一点),并且该脚本可以在尝试执行此操作之前检查安装是否存在。

但是,我不确定当最后一个 ssh (主 ssh)退出时如何清除安装。

答案1

连接时运行命令的选项是LocalCommand,必须通过设置PermitLocalCommand为 来启用yes,例如

ssh -oPermitLocalCommand=yes -oLocalCommand="sshfs server:dir /mnt &" myhost

请注意&,如果没有它,实际连接将不会打开,直到 sshfs 退出。这仅在主服务器上运行(因此将其添加到 是安全的~/.ssh/config)。

没有与退出时运行命令等效的方法,但只要您在与主连接相同的主机上使用 sshfs,它就会使用该连接。当主会话中的 shell 退出时,会话将不会关闭,直到任何其他连接关闭或者主控被终止。因此,如果您Ctrl-C在退出 shell 后键入,该sshfs进程也将终止并卸载文件系统。

相关内容