我正在尝试从本地计算机到远程计算机设置 SSHFS 共享,但不起作用。我收到错误 OSXFUSE 文件系统不可用(见下文)。如何修复此问题?
仅供参考,我的本地机器是运行 OSX 10.9.3 的 MacBook Pro 笔记本电脑。远程机器实际上是在同一硬件上运行 CentOS 的 VirtualBox。
% brew install sshfs # <---- SSHFS is installed
Warning: sshfs-2.5.0 already installed
% brew install osxfuse # <---- OSX Fuse is installed
Warning: osxfuse-2.6.4 already installed
% ssh [email protected] # <---- See, SSH works!!
Last login: Wed Jun 18 18:36:11 2014 from XXX.XXX.XXX.XXX
[[email protected] ~]% exit
% sudo mkdir /mnt
% sudo mkdir /mnt/Share
% sudo sshfs -o IdentityFile=~/.ssh/id_rsa.pub [email protected]:/ /mnt/Share
the OSXFUSE file system is not available (-1)
the OSXFUSE file system is not available (1)
我尝试过描述的解决方案这里.但它对我不起作用:
% sudo kextunload -b com.github.osxfuse.filesystems.osxfusefs
(kernel) Kext com.github.osxfuse.filesystems.osxfusefs not found for unload request.
Failed to unload com.github.osxfuse.filesystems.osxfusefs - (libkern/kext) not found.
答案1
您可以使用 Homebrew Cask 安装:
brew install Caskroom/cask/osxfuse
因为:
osxfuse: A full installation of Xcode.app is required to compile this software.
Installing just the Command Line Tools is not sufficient.
Xcode can be installed from the App Store.
osxfuse: Building this formula from source isn't possible due to OS X
Yosemite and above's strict unsigned kext ban.
答案2
我不是这方面的专家,但这种配置对我来说很有用。
安装OSXFUSE
Download OSXFUSE 2.6.0 @ http://osxfuse.github.io/2013/06/17/OSXFUSE-2.6.0.html
With the file downloaded, right click on the .dmg file, open and install it.
安装 SSHFS
如果你尚未安装 Brew,请转到http://brew.sh/并安装它。
安装 Brew 后,在终端中运行:
brew install sshfs
如果您收到类似“同意 Xcode/iOS 许可证需要管理员权限,请通过 sudo 以 root 身份重新运行”的错误。您所要做的就是打开 Xcode 并接受协议,然后等待它安装最后的补丁。
下一个必须修复的错误是 XCode 仍然使用 10.8 版的 SDK,而不是 10.9 版。如果您收到错误“xcodebuild:错误:无法找到 SDK“macosx10.9″”,则需要编辑位于 /usr/local/Library/Formula/fuse4x-kext.rb 的 fuse4x-kext.rb:
Replace on line 21:
“macosx#{MacOS.version}” with “macosx10.8“,
while keeping line 24 (MACOSX_DEPLOYMENT_TARGET) the same.
安装后,Brew 会显示一条消息“为了使基于 FUSE 的文件系统正常工作,root 用户必须安装 fuse4x 内核扩展:”,因此只需执行这两行:
sudo /bin/cp -rfX /usr/local/Cellar/fuse4x-kext/0.9.2/Library/Extensions/fuse4x.kext /Library/Extensions
sudo chmod +s /Library/Extensions/fuse4x.kext/Support/load_fuse4x
完成所有上述操作后,您应该能够通过 SSH 挂载任何远程文件系统。
要创建要挂载文件系统的路径:
mkdir -pv ~/path/to/mount
最后安装系统:
sshfs -C -p PORT user@server:/ ~/path/to/mount
希望这对你也有用。