Para las redes solo para Linux, encuentro que SSHFS es nativo, estable y extremadamente rápido. Tengo dos máquinas Xubuntu (18.04) compartiendo / carpetas de inicio sobre SSH.
Aquí se explica cómo configurar esto sshfs y reconectarse automáticamente después de reiniciar usando fstab sin tener que proporcionar una contraseña. Un gran agradecimiento al usuario de serverfault kubanczyk por cómo volver a conectarse después de una suspensión / reanudación remota.
Usaré "Máquina local - surfbox" para la computadora desde la que se está conectando, y "Máquina remota - devbox" para la computadora a la que se está conectando.
Reemplace "usuario remoto" a continuación con el nombre de usuario con el que inicia sesión en la máquina Remota, y "localizador" con el nombre de usuario con el que inicia sesión en la máquina Local. Para verificar los nombres de usuario, escriba echo $USER
terminal en máquinas remotas y locales.
Además, verifique su ID de usuario o ID de grupo, ambos deben ser 1000.
GroupID: id -g localuser
UserID:id -u localuser
1. Obtenga direcciones IP de sus máquinas locales y remotas.
hostname -I
Usaré 192.168.1.150 para la máquina local ('surfbox') y 192.168.1.151 para la máquina remota ('devbox')
2. Instalar paquetes en máquinas locales y remotas
sudo apt install sshfs fuse ssh
3. Cree un fusible de grupo y agréguele localizador
Crea un grupo: sudo groupadd fuse
Agregar localizador al grupo: sudo usermod -a -G fuse $user
4. Habilite "allow_other" en la configuración del fusible
Necesitaremos esta opción al montar en fstab
Edite /etc/fuse.conf
con su editor de línea de comando. Elimine el hashtag antes user_allow_other
y guárdelo.
5. Generar claves SSH en la máquina local
No proporcione una contraseña cuando se le solicite . Simplemente presione Entrar para dejar en blanco.
ssh-keygen -t rsa -C youremail@example.com
Las claves se almacenan en la carpeta /.ssh del directorio de inicio de la máquina local.
6. Transfiera la clave SSH pública de su máquina local a la máquina remota
ssh-copy-id -i ~/.ssh/id_rsa.pub remoteuser@192.168.1.151
Se le solicitará una contraseña para el usuario remoto en la máquina remota. La clave pública de la máquina local ahora se agrega al archivo ~ / .ssh / optional_keys en la máquina remota.
7. Cree un directorio en la carpeta Máquina local / mnt donde montará la máquina remota / carpeta de inicio.
Elija cualquier nombre que tenga sentido para su máquina remota.
sudo mkdir /mnt/devboxhome
8. Monte la máquina remota / directorio de inicio desde la terminal
La sintaxis para sshfs es
sshfs [user@]host:[directory] mountpoint [options]
usamos
sudo sshfs [remoteuser]@192.168.1.151:/home/[remoteuser] /mnt/devboxhome -o allow_other,default_permissions -o identityfile=/home/[localuser]/.ssh/id_rsa
ejemplo: suponiendo que "steve" es el nombre de usuario en máquinas locales y remotas
sudo sshfs steve@192.168.1.151:/home/steve /mnt/devboxhome -o allow_other,default_permissions -o identityfile=/home/steve/.ssh/id_rsa
Como ha transferido la clave RSA pública a la máquina remota, no se le solicitará la contraseña del usuario remoto.
Recibirá una advertencia de que la máquina no es confiable y se le preguntará si debe agregarse. Agregue la máquina remota como confiable.
9. Verificar: Examinar la máquina remota / directorio de inicio
En la terminal de la máquina local, ahora puede enumerar la máquina remota / directorio de inicio en / mnt / devboxhome
cd /mnt/devboxhome
ls
o use Nautilus para explorar el directorio. Excelente.
10. Habilite la reconexión después de reiniciar
Agregaremos una entrada en / etc / fstab para que esto suceda. Necesitará su ID de usuario de máquina local o groupid; consulte la introducción si se lo perdió. Edite / etc / fstab con su editor de línea de comando y agregue estas dos líneas al final de / etc / fstab
# Mount devbox at boot
remoteuser@192.168.1.151:/home/[remoteuser]/ /mnt/devboxhome fuse.sshfs default_permissions,user,delay_connect,reconnect,serversliveinterval=15,serveralivecountmax=3,allow_other,identityfile=/home/[localuser]/.ssh/id_rsa,idmap=user,uid=1000,gid=1000 0 0
- delay_connect hace que el kernel espere hasta que la red esté activa hasta que intente montar el directorio en la máquina Remota.
- Como nos estamos ejecutando como root durante el arranque, tenemos que especificar el archivo de claves que se almacena en el directorio de inicio del localizador.
- allow_other : los usuarios que no sean el que realiza el montaje real pueden acceder al sistema de archivos montado.
- idmap = user - solo traduce el UID del usuario conectado
- reconecte, ServersLiveInterval, ServerAliveCountMax - ssh envía pings de mantenimiento de vida. Si
ServerAliveCountMax
fallan los pings consecutivos, vuelva a conectar.
Un usuario que inicie sesión como Steve en máquinas locales y remotas tendría:
steve@192.168.1.151:/home/steve/ /mnt/devboxhome fuse.sshfs default_permissions,user,delay_connect,reconnect,serversliveinterval=15,serveralivecountmax=3,allow_other,identityfile=/home/steve/.ssh/id_rsa,idmap=user,uid=1000,gid=1000 0 0
IMPORTANTE : una barra diagonal después del directorio remoto: steve@192.168.1.151: / home / steve /
guardar / etc / fstab y ...
11. Reiniciar
Ahora debería poder acceder a la máquina remota / directorio de inicio en la máquina local / mnt / devboxhome En Nautilus puede arrastrar esta carpeta a la barra de Lugares
12. Repita
Siga los mismos pasos nuevamente en la máquina remota para compartir el directorio / home de la máquina local.