在 macOS Catalina 上使用 sshfs 自动挂载
automount w/ sshfs on macOS catalina
我正在尝试在 macOS Catalina 上使用 automount
和 sshfs
设置 SSH 端点的自动挂载。但是,它不起作用,我不确定为什么。
/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
/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
/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 中找到详细解释的指南。
我正在尝试在 macOS Catalina 上使用 automount
和 sshfs
设置 SSH 端点的自动挂载。但是,它不起作用,我不确定为什么。
/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
/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
/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 中找到详细解释的指南。