![为什么 sshfs 仅在 ssh 命令内部调用时不起作用?](https://linux22.com/image/1295275/%E4%B8%BA%E4%BB%80%E4%B9%88%20sshfs%20%E4%BB%85%E5%9C%A8%20ssh%20%E5%91%BD%E4%BB%A4%E5%86%85%E9%83%A8%E8%B0%83%E7%94%A8%E6%97%B6%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8%EF%BC%9F.png)
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/"
请注意,您将看不到密码对话框,但您仍然可以输入密码。(或者至少它可以与密码一起使用)