Actualización 2016-08-03: He descubierto que la instalación de SSHFS de https://osxfuse.github.io es más estable que la versión homebrew, debido a alguna dependencia antigua (por lo tanto esto puede mejorar en el futuro).
AVISO: Esta conexión es super rápida cuando funciona, pero a menudo tiene problemas después de terminada se conecta debido, por ejemplo, inalámbrica, en espera.
Se supone que tiene Elaboración casera instalado ( hazte la vida más fácil y consigue esto primero )
Instalación de SSHFS
brew install sshfs
Compruebe esta carpeta para ver los sistemas de archivos instalados: ls /Library/Filesystems
Si no ve osxfusefs.fs
es necesario instalarlo.
Obtener barrica
brew tap caskroom/cask
Instalar OSXFUSE
brew cask install osxfuse
Alternativamente en lugar de homebrew utilizar las versiones de descarga de https://osxfuse.github.io/
SSHFS + OSXFUSE ya instalados. Un paso más...
autofs
necesita mount_*
binarios.
/usr/local/bin/sshfs
también debería estar disponible como mount_sshfs
así que..:
Enumere su mount_*
s con
compgen -c | grep ^mount
O
ls /sbin | grep mount
Si no ves mount_sshfs, entonces necesitas hacer este paso. Se trata de un paso fundamental porque se olvida fácilmente y puede crear quebraderos de cabeza. En /sbin
está en la partición del sistema tendrá que desactivar SIP y volver a montar la partición con el atributo de escritura .
En Modo Recuperación abra Terminal y desactive SIP y reinicie:
csrutil disable
reboot
Una vez reiniciado, vuelva a montar el volumen del sistema:
sudo mount -uw /
Ahora puede crear el enlace simbólico adecuado:
sudo ln -s $(which sshfs) /sbin/mount_sshfs
Añadir Autostart en Boot Daemon en /Library/LaunchDaemons/
Se podría llamar archivo:
Necesita ejecutar esto en cada arranque para la extensión del kernel:
/bin/bash -c "/Library/Filesystems/osxfuse.fs/Contents/Resources/load_osxfuse; /usr/sbin/sysctl -w vfs.generic.osxfuse.tunables.allow_other=1"
Así que crea un nuevo archivo de servicio:
/Library/LaunchDaemons/load.osxfusefs.tunables.plist
Contenido:
<?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>
Cargar con launchctl
(launchd) para el siguiente arranque, que es la versión para Mac OS X de systemctl
(systemd)
launchctl load /Library/LaunchDaemons/load.osxfusefs.tunables.plist
Configurar auto_master y auto_sshfs
Lo siguiente asume que usted puede ssh en su servidor con una clave segura (no requiere contraseña).
/etc/auto_master
/mnt/sshfs auto_sshfs -nosuid
/etc/auto_sshfs Puede utilizar parámetros que normalmente vienen después de -o
en sshfs -o
dependiendo de su situación.
- idmap=user: configuración por defecto. dado que su uid y gid es probablemente diferente a través de los sistemas operativos, usted podría simplemente asignar el usuario utilizado en el user@ip: a su usuario local (cliente). El grupo será ignorado en este caso (lo que significa que las carpetas que no son de su propiedad pero que 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: escriba id YOURUSER para obtener los números. Esto asignará todos los archivos del montaje a esta combinación de usuario/grupo. Esto le permitirá leer todos los archivos. Creo que cualquier nuevo archivo/carpeta que crees heredará la configuración umask por defecto para cualquier carpeta que montes.
-
permitir-otro: Yo uso esto, pero es arriesgado porque cualquier usuario que navegue por el montaje verá el montaje usando las credenciales usadas al conectarse.
-
lista todos los parámetros con man sshfs
y leer ver cada parámetro después de cada -o
reemplazar:
- YOURUSER con su nombre de usuario y
- PRIVATEKEY a su clave, por ejemplo id_ed25519
- ip con su dirección ip o nombre de host
Contenido Importante es el parámetro reconnect
De lo contrario, si pierdes la conexión (por ejemplo, si te vas a dormir), Finder se bloqueará.
Sustituir
- $(id -u) con su id real en la máquina cliente
- $(id -g) con su id de grupo real en la máquina cliente
Lamentablemente no se pueden 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
Lista de todos los montajes
mount