Actualización 2016-08-03: encontré que la instalación de SSHFS desde enlace es más estable que la versión de homebrew, debido a alguna dependencia antigua ( por lo tanto, esto puede mejorar en el futuro).
CAVEAT: esta conexión es súper rápida cuando funciona, pero a menudo tiene problemas después de que las conexiones terminadas se deban, por ejemplo. inalámbrico, en espera.
Supone que tienes Homebrew instalado ( simplifica tu vida y obtén esto primero )
Instalación de SSHFS
brew install sshfs
Marque esta carpeta para ver los sistemas de archivos instalados: ls /Library/Filesystems
Si no ve osxfusefs.fs
, necesita instalarlo.
Obtener Cask
brew tap caskroom/cask
Instala OSXFUSE
brew cask install osxfuse
Alternativamente, en lugar de homebrew, use las versiones de descarga de
enlace
SSHFS + OSXFUSE ahora instalado. Un paso más ...
autofs
necesita mount_*
binarios.
/usr/local/bin/sshfs
también debería estar disponible como mount_sshfs
, así que:
Liste su mount_*
s con
compgen -c | grep ^mount
O
ls /sbin | grep mount
Si no ve mount_sshfs, deberá realizar este paso. Este es un paso crítico porque se olvida fácilmente y puede crear dolores de cabeza.
sudo ln -s $(which sshfs) /sbin/mount_sshfs
Agregar inicio automático en el demonio de arranque en /Library/LaunchDaemons/
El archivo podría llamarse:
Debe ejecutar esto en cada arranque para la extensión del kernel:
/bin/bash -c "/Library/Filesystems/osxfusefs.fs/Support/load_osxfusefs; /usr/sbin/sysctl -w osxfuse.tunables.allow_other=1"
Así que crea un nuevo archivo de servicio:
/Library/LaunchDaemons/load.osxfusefs.tunables.plist
Contenidos:
<?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/osxfusefs.fs/Support/load_osxfusefs; /usr/sbin/sysctl -w osxfuse.tunables.allow_other=1</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
Cargue con launchctl
(launchd) para el próximo inicio, que es la versión de Mac OS X de systemctl
(systemd)
launchctl load /Library/LaunchDaemon/load.osxfusefs.tunables.plist
Configurar auto_master y auto_sshfs
Lo siguiente asume que puedes ingresar a tu servidor con una clave segura (no se requiere contraseña).
/ etc / auto_master
/mnt/sshfs auto_sshfs -nosuid
/ etc / auto_sshfs
Puede usar parámetros que normalmente vienen después de -o
en sshfs -o
dependiendo de su situación.
- idmap = usuario: configuración predeterminada. dado que su uid y gid es probablemente diferente en los sistemas operativos, puede asignar el usuario utilizado en el usuario @ ip: a su usuario local (cliente). El grupo se ignorará en este caso (lo que significa que las carpetas que aún no le pertenecen le otorgan permisos de lectura en el grupo del lado del servidor pueden no ser legibles localmente - en el lado del cliente)
O
-
uid = YOURUSERID, gid = YOURGROUPID: simplemente escribe id YOURUSER para obtener los números. Esto solo asignará todos los archivos del montaje a esta combinación de usuario / grupo. Esto te permitirá leer todos los archivos. Creo que cualquier nuevo archivo / carpeta que cree heredará la configuración predeterminada de umask para cualquier carpeta que monte.
-
allow-other: uso esto, pero es arriesgado porque cualquier usuario que navegue por el montaje verá el montaje con las credenciales utilizadas al conectarse.
-
listar todos los parámetros con man sshfs
y leer ver cada parámetro después de cada -o
reemplazar:
- SU USUARIO con su nombre de usuario y
- PRIVATEKEY a su clave, por ejemplo. id_ed25519
- ip con su dirección IP o nombre de host
contenidos
Importante es el parámetro reconnect
, de lo contrario, cuando pierdas la conexión (como ir a dormir), el Finder se bloqueará.
Reemplazar
- $ (id -u) con su ID real en la máquina cliente
- $ (id -g) con su ID de grupo real en la máquina cliente
Desafortunadamente, no puedes ejecutar cosas en autofs como id -u
NameOfMountThatGetsIgnored -fstype=sshfs,port=22,reconnect,uid=$(id -u),gid=$(id -g),follow_symlinks,allow_other,IdentityFile=/Users/YOURUSER/.ssh/PRIVATEKEY,volname="NameOfMount" YOURUSER@ip:/path/on/server
Prueba
df -Ph /path/to/mount
Lista de sistemas de archivos montados
lsvfs
Listar todos los montajes
mount