GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo usar el montaje SSHFS con directorios remotos a través de SSH

Trabajar en un directorio remoto como si fuera uno local es más cómodo, ¿no te parece? En lugar de enviar y recibir archivos de forma remota mediante SCP, SFTP o FTP, ¿qué pasaría si pudiera administrar esos archivos directamente? Por suerte para ti, la montura SSHFS es una solución rápida a este dilema.

Este tutorial le enseñará cómo usar el montaje SSHFS para que pueda acceder al contenido del directorio remoto en su máquina local. Ya sea que sea un usuario de Windows o Linux, este tutorial lo tiene cubierto.

El ejemplo de caso de uso específico en este tutorial demuestra la actualización de los contenidos de un sitio web en el directorio montado SSHFS de un servidor remoto. Sin embargo, el concepto general debe aplicarse a su situación específica y no se limita solo a los servidores web.

Requisitos

Este tutorial será una demostración práctica. Si desea seguirnos, asegúrese de tener lo siguiente:

  • Un servidor web Linux:este tutorial usará un Fedora 35 llamado wbserver con Apache HTTP Server instalado. Este servidor contiene el directorio remoto que será el destino del montaje SSHFS.
  • Un cliente Linux:este tutorial usará un cliente Fedora 35 llamado fedora .
  • Un cliente de Windows (Windows 7 y superior):este tutorial utiliza un cliente de Windows 10 llamado win10pc .

Preparación del directorio remoto

Este tutorial funcionará en el directorio remoto en el wbserver servidor llamado /var/www/html . De forma predeterminada, solo la cuenta raíz tiene acceso a esta carpeta. Dado que no utilizará la cuenta raíz del servidor, debe otorgar a la cuenta de usuario designada permiso para acceder al directorio.

En este ejemplo, la cuenta de usuario designada para montar y acceder al montaje SSHFS es adm1 . Siga los pasos a continuación para dar adm1 los permisos adecuados para /var/www/html en wbserver .

1. Inicie sesión en wbserver utilizando su cliente SSH preferido.

2. A continuación, ejecute el siguiente comando para otorgar al usuario adm1 permisos de acceso total (rwx) a la carpeta /var/www/html.

sudo setfacl -m u:adm1:rwx /var/www/html

3. Por último, confirme que el permiso es correcto ejecutando el siguiente comando.

sudo getfacl -a /var/www/html

Como puede ver a continuación, adm1 ahora tiene acceso de lectura/escritura a la carpeta.

Uso del montaje SSHFS en Linux

SSHFS es principalmente una herramienta de Linux, y solo necesita ejecutar algunos comandos para montar un directorio remoto en su computadora. Instalar los paquetes para habilitar el montaje SSHFS es tan conveniente como instalar otros paquetes en Linux a través del administrador de paquetes de su distribución.

Instalación de SSHFS y montaje de un directorio remoto

Siga los pasos a continuación para instalar el paquete de montaje SSHFS y monte un directorio remoto en una ruta local.

1. Inicie sesión en su cliente Linux a través de SSH o Desktop, según su entorno.

2. Ejecute el siguiente comando para instalar el paquete fuse-sshfs usando su administrador de paquetes.

Nota:en las distribuciones de Linux basadas en Debian, el nombre del paquete es sshfs.

sudo dnf install -y fuse-sshfs

El administrador de paquetes también instala las dependencias que aún no están presentes en su computadora. Y debido a que el tamaño de cada paquete es inferior a 100 KB, la descarga y la instalación tardaron solo unos segundos en finalizar.

3. A continuación, cree una nueva carpeta en su directorio de inicio llamada mnt. Esta nueva carpeta es el punto de montaje para el directorio remoto.

mkdir ~/mnt

4. Después de crear el punto de montaje, ejecute el siguiente comando sshfs.

Este comando montará el directorio remoto del servidor web (wbserver) (/var/www/html) en el punto de montaje local (~/mnt) que creó mientras usaba las credenciales de adm1 para acceder.

sshfs [email protected]:/var/www/html ~/mnt

Si el servidor SSH no escucha el puerto predeterminado 22, debe especificar el modificador -o puerto con el comando sshfs. Por ejemplo, si el servidor remoto escucha el puerto 2222, el comando sería sshfs -o port 2222.

5. Si se está conectando al servidor por primera vez, confirme the conexión presionando Y cuando se le solicite, escriba la contraseña de la cuenta y presione Enter .

6. Por último, confirme que ha montado con éxito el directorio remoto ejecutando el siguiente comando.

findmnt

Debería ver que el directorio remoto ahora está montado en el directorio local que especificó.

Habilitación de montaje automático en el arranque

Si bien ha montado con éxito el directorio remoto, recuerde que este estado de montaje no es persistente. Reiniciar la computadora no montará automáticamente el directorio remoto.

Pero puede hacer que el montaje SSHFS sobreviva a los reinicios de la computadora editando el /etc/fstab archivo y habilitar la autenticación basada en claves para el adm1 cuenta. Habilitar la autenticación basada en clave SSH garantiza que el montaje de SSHFS se automatizará por completo (sin solicitudes de contraseña).

1. En el cliente Linux, genere un nuevo par de claves SSH ejecutando el siguiente comando.

ssh-keygen

En el archivo Enter en el que guardar la solicitud de clave, escriba el nombre del archivo clave y presione Enter. En este ejemplo, el nombre de archivo clave para guardar es /home/user1/.ssh/[email protected]

Deje la frase de contraseña vacía y presione Entrar dos veces. La siguiente captura de pantalla muestra el resultado de la creación del par de claves.

2. Ahora, copie la clave en el servidor web. El siguiente comando instala la clave que generó previamente (/home/user1/.ssh/[email protected]) en la cuenta adm1 en wbserver.

ssh-copy-id -i /home/user1/.ssh/[email protected] [email protected]

Escriba la contraseña para [email protected] cuando se le solicite y presione Entrar. Como puede ver a continuación, el comando instaló correctamente la clave en el servidor.

3. SSH en wbserver usando el par de claves para garantizar que el inicio de sesión basado en claves funcione.

ssh -i /home/user1/.ssh/[email protected] [email protected]

Como resultado, el inicio de sesión debería tener éxito sin solicitar una contraseña. Escriba exit y presione Entrar para cerrar sesión en wbserver.

4. Ahora que ha configurado la autenticación basada en clave SSH para la cuenta de usuario SSHFS, está listo para configurar el montaje SSHFS persistente.

Abra el archivo /etc/fstab en un editor de texto.

sudo nano /etc/fstab

5. Agregue el siguiente código al final del archivo /etc/fstab. Asegúrese de cambiar el valor del archivo de identidad =con la ruta del archivo de la clave SSH.

[email protected]:/var/www/html /home/user1/mnt fuse.sshfs identityfile=/home/user1/.ssh/[email protected],allow_other,_netdev 0 0

6. Después de editar, guarde el archivo, cierre el editor de texto y reinicie la computadora. Como puede ver a continuación, el montaje SSHFS vuelve a estar disponible después del reinicio.

Prueba del montaje SSHFS

Así que ha montado el directorio remoto en su computadora local. La pregunta ahora es, "¿funciona?". La prueba más rápida para confirmar es crear un nuevo archivo y guardarlo en el punto de montaje SSHFS. El archivo que creó debería aparecer en el servidor.

Por defecto, el /var/www/html La carpeta en el servidor web está vacía. Cuando accede al sitio web alojado en https://wbserver , solo verá la página de prueba predeterminada, como la siguiente captura de pantalla.

En este ejemplo, creará una nueva página de inicio y confirmará que el servidor web muestra esa nueva página.

1. Cambie el directorio de trabajo a ~/mnt, el punto de montaje de SSHFS.

cd ~/mnt

2. Ejecute el comando táctil para crear un archivo index.html y ábralo en el editor de texto.

touch index.html && nano index.html

3. Ahora, complete el archivo index.html con el siguiente código HTML, guarde el archivo y salga del editor.

Welcome

I was put here over SSH by SSHFS

La siguiente captura de pantalla muestra el contenido esperado del archivo index.html.

4. Por último, abra de nuevo la URL del sitio web en su navegador web. El servidor web debería recoger y mostrar la nueva página de inicio, como puede ver a continuación.

¡Felicidades! Ahora ha implementado con éxito el montaje SSHFS en su computadora Linux. No necesita cargar o descargar archivos remotos para realizar cambios manualmente.

Desmontar el directorio remoto

Suponga que ya no necesita acceder al directorio remoto a través del montaje SSHFS y desea desmontarlo, ejecute cualquiera de los siguientes comandos.

Ejecute el siguiente comando si montó el directorio remoto de forma interactiva usando el sshfs herramienta.

fusermount -u /home/user1/mnt

Si montó automáticamente el directorio remoto en fstab , ejecute el siguiente comando en su lugar. Además, debe eliminar la entrada de montaje automático de SSHFS en fstab . De lo contrario, el directorio remoto volverá a montarse automáticamente después de reiniciar.

sudo umount /home/user1/mnt

Uso del montaje SSHFS en Windows

Las computadoras con Windows pueden asignar ubicaciones de red como unidades locales, como sitios FTP, recursos compartidos de red y bibliotecas de SharePoint. Le alegrará saber que también puede agregar unidades de montaje SSHFS en Windows instalando un programa llamado SSHFS-Win, un puerto de SSHFS en Linux.

Instalación de WinFsp y SSHFS-Win

SSHFS-Win requiere que WinFsp funcione, ya que proporciona la funcionalidad FUSE subyacente. Siga las instrucciones a continuación para instalar tanto WinSfp como SSHFS-Win.

1. Abra el navegador en su cliente de Windows y descargue la última versión de WinSfp (v1.10) y SSHFS-Win (v3.5.20357).

2. Localice los instaladores que descargó y ejecute primero el instalador de WinSfp.

3. Haga clic en Siguiente en la página Bienvenido al asistente de instalación de WinFsp 2022.

4. Seleccione todas las funciones y haga clic en Siguiente.

5. Haga clic en Instalar en la página Listo para instalar WinFsp 2022.

6. Después de la instalación de WinFsp, haga clic en Finalizar.

7. A continuación, inicie el instalador SSHFS-Win.

8. Haga clic en Siguiente en la primera pantalla, como se muestra a continuación, para iniciar el proceso de instalación.

9. Haga clic en Siguiente en la página Configuración personalizada.

10. En la página Listo para instalar SSHFS-Win, haga clic en Instalar.

11. Finalmente, haga clic en Finalizar para completar y salir del asistente de configuración.

Comprender la sintaxis de la ruta SSHFS

Antes de mapear un directorio remoto a través del montaje SSHFS, revise la lista a continuación para comprender cómo SSHFS-Win interpreta las rutas remotas.

\\\\PREFIX\\[email protected][!PORT][\\PATH]
  • REMUSER es el usuario remoto cuyas credenciales utilizará para autenticarse con el servidor remoto.
  • HOST es el nombre de host o la dirección IP del servidor remoto.
  • PORT es el puerto de escucha SSH del servidor remoto. Este valor es opcional y el valor predeterminado es el puerto 22.
  • PATH es la ruta remota relativa al PREFIX . Los diferentes prefijos son:
    • sshfs – se asigna a la ruta relativa al directorio de inicio del usuario (es decir, HOST:~REMUSER/PATH ).
    • sshfs.r – se asigna a una ruta relativa al directorio raíz del host (es decir, HOST:/PATH )
    • sshfs.k – se asigna a la ruta relativa al directorio de inicio del usuario (es decir, HOST:~REMUSER/PATH ) y utiliza autenticación basada en clave SSH. Este prefijo usa la clave en %USERPROFILE%/.ssh/id_rsa para la autenticación.
    • sshfs.kr – se asigna a una ruta relativa al directorio raíz del host (es decir, HOST:/PATH ) y usa la clave en %USERPROFILE%/.ssh/id_rsa para la autenticación.

Montar y desmontar el directorio remoto usando el Explorador de archivos de Windows

Una forma de asignar una unidad de red en Windows es a través del Explorador de archivos de Windows. Con este método, no tiene que ejecutar ningún comando y hará cada paso en una GUI de estilo asistente.

1. Abra una ventana del Explorador de archivos, haga clic en Esta PC —> Equipo —> Asignar unidad de red .

2. Elija una letra de unidad y escriba la ruta a continuación en el cuadro Carpeta para montar la carpeta \var\www\html.

\\sshfs.r\[email protected]\var\www\html

Deje marcada la opción Reconectar al iniciar sesión y haga clic en Finalizar.

3. Introduzca la contraseña de la cuenta, marque la casilla Recordarme y haga clic en Aceptar.

Ahora ha asignado un montaje SSHFS con una letra de unidad. Y debido a que habilitó las opciones Reconectar al iniciar sesión y Recordarme, Windows volverá a conectar el montaje SSHFS después de reiniciar la computadora.

4. En este punto, ahora puede administrar los archivos en el directorio remoto. Pero, si ya no necesita la unidad asignada y desea eliminarla, haga clic con el botón derecho en el montaje SSHFS y haga clic en Desconectar.

Montar y desmontar el directorio remoto mediante la línea de comandos

El comando net use es otra forma de asignar un directorio remoto en Windows. La asignación de unidades de montaje SSHFS a través de la línea de comandos es útil para la creación de scripts y la automatización.

Para montar el directorio remoto, abra el símbolo del sistema o PowerShell y ejecute el siguiente comando para asignar el \\var\\www\\html directorio remoto a la unidad de la computadora local Z . Asegúrate de cambiar el PASSWORD valor con la contraseña del usuario remoto.

net use Z: \\\\sshfs.r\\[email protected]\\var\\www\\html PASSWORD /user:adm1

Para quitar la unidad de montaje SSHFS usando la línea de comando, delete la asignación para conducir Z: ejecutando el siguiente comando.

net use Z: /delete

Prueba del montaje SSHFS

Ahora que tiene acceso a una unidad de red asignada localmente, puede administrar los archivos en el directorio remoto como lo haría con cualquier otro archivo local. En este ejemplo, actualizará la página de inicio del sitio web directamente desde la unidad SSHFS asignada.

1. Abra el Explorador de archivos y navegue hasta la unidad asignada.

2. Abra el archivo llamado index.html en un editor de texto como el bloc de notas. Si el archivo no existe, créelo primero.

3. Copie el código HTML a continuación, péguelo en su index.html y guarde el archivo.

Welcome

I was put here over SSH by SSHFS

Brought to You from Windows 10

4. Por último, abra su navegador web y vaya a la URL del sitio web HTTP://wbserver . Ahora debería ver la página de inicio actualizada que editó, lo que confirma que su montaje SSHFS funciona según lo previsto.

Conclusión

Finalmente has llegado al final de este tutorial. Aprendió a usar el montaje SSHFS para asignar directorios a su computadora Windows o Linux local desde un servidor SSH remoto. SSHFS es una herramienta excelente para la comodidad y la seguridad del acceso remoto a archivos.

Hablando de seguridad, tal vez debería consultar Cómo proteger SSH con Fail2Ban como próximo paso. ¡Buena suerte!


Linux
  1. Comando SCP en Linux:cómo usarlo, con ejemplos

  2. ¿Cómo usar Ssh-copy-id con túnel Ssh de múltiples saltos?

  3. Linux:¿cómo montar un sistema de archivos remoto especificando un número de puerto?

  4. Cómo diferenciar directorios sobre ssh

  5. ¿Cómo puedo usar SSH con un proxy SOCKS 5?

SSHFS:Montaje de un sistema de archivos remoto a través de SSH

Cómo montar un sistema de archivos Linux remoto usando SSHFS

Cómo usar SSH para conectarse a un servidor remoto

Cómo usar una clave SSH con usuarios no root

Montar una carpeta remota con sshfs

Cómo usar SSH para conectarse a un servidor remoto en Linux o Windows