Estoy intentando montar automáticamente un directorio desde una máquina Ubuntu remota en mi Mac Mavericks. SSHFS funciona perfectamente cuando se monta manualmente, de muchas maneras diferentes. El montaje sshfs estándar funciona muy bien:
sshfs user@desk:/home/user desk
e incluso puedo usar mount
:
sudo mount -t sshfs -o allow_other,IdentityFile=/Users/user/.ssh/nopass_id_dsa [email protected]:/home/user desk
(Seguí elInstrucciones de montaje automático de OSXFusepara configurar mount_sshfs
)
Quiero convertir esto en un montaje automático. La forma más sencilla, recomendada por OSXFuse, es convertir el mount
comando anterior en una /etc/fstab
entrada:
[email protected]:/home/user /Network/desk sshfs allow_other,IdentityFile=/Users/user/.ssh/nopass_id_dsa 0 0
pero eso no funciona:
Network $ sudo mount desk
mount: desk: unknown special file or file system.
De manera similar, si lo hago, sudo automount -vc
obtengo un tiempo de espera prolongado o un error inútil de "Operación no permitida" cuando intento ingresar el punto de montaje, dependiendo de cómo juego con el formato de las opciones de fstab. Recibo los mismos errores cuando intento configurar un mapa de montaje automático, como se describeaquí.
¿Qué pasa con mi entrada fstab? O, ¿de qué otra manera puedo montar automáticamente sshfs en OSX?
(Estoy en 10.9.5 con sshfs 2.5.0 de homebrew)
Respuesta1
Debido a un error en OSXFuse, esto es necesario para que funcione el indicador enable_other:
sudo sysctl -w osxfuse.tunables.allow_other=1
Esto puede solucionar o no el problema de fstab, pero funciona con un mapa directo. Así es como configuré el mío.
Agregue esta línea a /etc/auto_master:
/- auto_ssh -nobrowse,nosuid
crear /etc/auto_ssh:
/Users/USER/MOUNT_POINT -fstype=sshfs,allow_other,idmap=user,cache=no USER@LINUXMACHINE:/home/USER
(suponiendo que tenga configuradas claves sin contraseña).
Informe a autofs sobre sus cambios:
sudo automount -vc
Para que el cambio osxfuse.tunables.allow_other sobreviva al reinicio:
Pon lo siguiente en /Library/LaunchDaemons/sysctl.plist
:
<?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>Label</key>
<string>sysctl</string>
<key>ProgramArguments</key>
<array>
<string>/bin/bash</string>
<string>-c</string>
<string>/Library/Filesystems/osxfusefs.fs/Support/load_osxfusefs; /usr/sbin/sysctl -w osxfuse.tunables.allow_other=1</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
Cargue el plist con:
launchctl load /Library/LaunchDaemons/sysctl.plist
Respuesta2
intente agregar el siguiente formato en fstab:
NOMBRE DE USUARIO@NOMBRE DE HOST_O_IP:/REMOTE/DIRECTORIO /LOCAL/PUNTO DE MONTAJE fuse.sshfs x-systemd.automount,_netdev,user,idmap=user,transform_symlinks,identityfile=/home/NOMBRE DE USUARIO/.ssh/id_rsa,allow_other,default_permissions,uid=USER_ID_N ,gid=USER_GID_N 0 0
Si lo anterior no funciona, verifique b agregando delay_connect en ese contenido y verifique.
También
ver Macfusion. También es beneficioso leer las preguntas frecuentes de OSXFUSE para conocer su justificación para hacer de Macfusion un requisito para los sistemas de archivos de espacio de usuario SSHFS.