为什么 sshfs 仅在 ssh 命令内部调用时不起作用?

为什么 sshfs 仅在 ssh 命令内部调用时不起作用?

A是 Mac Os X 10.7.2 主机,并且是运行在 ArchLinux VM 中A。我可以从A以及来自A使用身份验证密钥。我想要安装于A启动时使用 sshfs。

这为什么有效...

X@B $ ssh A
X@A $ sshfs B: Desktop/B/
X@A $ ls Desktop/B/
Desktop/      Downloads/    Temp/         bin/

...而这却不是吗?

X@B $ ssh -t A "/opt/local/bin/sshfs B: Desktop/B/"
Enter passphrase for key '/Users/X/.ssh/id_dsa': 
Connection to A closed.
-- then back on A: --
X@A $ ls Desktop/B/
[empty]

为什么第一个场景可以顺利运行,而第二个场景却不行?

我也尝试了双重操作(将 A 安装在 B 中,而不是将 B 安装在 A 中),第二种方案效果并不好。我使用 -t 来输入我的密码,但我不在乎是否要为这个问题输入密码(也就是说不要建议我转发我的代理,这不是问题所在……)。

以下是我的版本:

X@A $ sshfs -V                                                                                                                                                                                                 
SSHFS version 2.3
fuse4x library version: FUSE 2.8.6 / fuse4x 0.8.13

X@B $ sshfs -V
SSHFS version 2.3
FUSE library version: 2.8.6
fusermount version: 2.8.6
using FUSE kernel interface version 7.12

答案1

我手头没有 osx,但是您遇到的问题的原因很可能与它无法在 linux 上运行的原因相同。

问题是 sshfs 连接到一个终端,断开​​连接会关闭该终端并关闭您的挂载。

可以使用以下方法测试:

ssh -t A "/opt/local/bin/sshfs B: Desktop/B/ ; sleep 60"

并检查安装是否有效。 60 秒后它应该会消失。

解决这个问题的一种方法是使用nohup或类似的东西。

ssh -t A "nohup /opt/local/bin/sshfs B: Desktop/B/"

请注意,您将看不到密码对话框,但您仍然可以输入密码。(或者至少它可以与密码一起使用)

相关内容