在 macOS Catalina 上使用 sshfs 自动挂载

automount w/ sshfs on macOS catalina

我正在尝试在 macOS Catalina 上使用 automountsshfs 设置 SSH 端点的自动挂载。但是,它不起作用,我不确定为什么。

  1. /etc/auto_master
+auto_master        # Use directory service
#/net           -hosts      -nobrowse,hidefromfinder,nosuid
/home           auto_home   -nobrowse,hidefromfinder
/Network/Servers    -fstab
/-          -static
# custom; auto-mount wolverine (parker lab setup)
/-  auto_wolverine  -nosuid
  1. /etc/auto_wolverine
/System/Volumes/Data/wolverine/home -fstype=sshfs,reconnect,nodev,follow_symlinks,allow_other,StrictHostKeyChecking=no,IdentityFile=IDFILE,port=PORT,ServerAliveInterval=360,ServerAliveCountMax=3 USER@HOST:/home
  1. /etc/sythetic.conf

wolverine /System/Volumes/Data/wolverine

我还根据我看到的其中一个教程将 sshfs 二进制文件符号链接到 /usr/local/bin/mount_sshfs。 但是,当我尝试打开目标目录时(刷新挂载后),它显示 No such file or directory。任何帮助将不胜感激。

这里的问题是 automount 试图在 /sbin 中搜索 mount_sshfs。因此,尽管您已经创建了该符号链接,但它不适用于 automount.

由于 macOS Catalina,/sbin 被安装为 只读 卷,因此您将无法创建所需的符号链接:/sbin/mount_sshfs -> /usr/local/bin/sshfs。您可以在 Apple's support webpage.

找到更多信息

我对以前的 macOS 10.15 Catalina 版本有用的一件事是禁用 System Integrity Protection 并从 Recovery OS 分区创建所需的符号链接。但是我不知道这个剧照是否适用于Catalina。

您可以在此 document.

中找到如何禁用 SIP

如果您最终成功创建了符号链接,您可能需要添加以下守护进程来为自动挂载启用内核扩展:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Disabled</key>
    <false/>
    <key>Label</key>
    <string>sysctl</string>
    <key>ProgramArguments</key>
    <array>
        <string>/bin/bash</string>
        <string>-c</string>
        <string>/Library/Filesystems/osxfuse.fs/Contents/Resources/load_osxfuse; /usr/sbin/sysctl -w vfs.generic.osxfuse.tunables.allow_other=1</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

将其命名为load.osxfusefs.tunables.plist并放入/Library/LaunchDaemon

您可以在 Apple StackExchange 的 this answer 中找到详细解释的指南。