Hay veces que estamos trabajando constantemente, en la terminal, con una unidad remota a través de una conexión SSH y aunque podemos agilizar las conexiones entre nuestro ordenador y el remoto autenticándonos mediante claves privadas tenemos que estar en nuestro terminal o en el terminal remoto.
Ahora bien, podemos montar esta conexión como si fuera un «disco duro» más de nuestro ordenador, cambiando entre unidades con el comando cd
y usando todos los comandos como mv
, cp
o cualquier otro.
Quizás para este tema es mejor montar una ruta a un directorio específico mas que a la raiz, sobre todo por seguridad.
Por tanto vamos a suponer que queremos montar la carpeta home
del usuario remoto.
Estos serán los datos de nuestro servidor remoto:
Servidor remoto: server.com
Directorio remoto: /home/usuario/
Lo primero que haremos será crear el directorio en el cual montaremos la unidad remota:
mkdir /mnt/server
Ahora montamos la unidad remota con el comando sshfs
.
sshfs usuario@server.com:/home/usuario /mnt/server
Si el puerto SSH remoto no es el estándar (22) y suponemos que es el 2221, usaremos la orden de la siguiente manera:
sshfs usuario@server.com:/home/usuario -p2221 /mnt/server
Nos pedirá la contraseña del servidor remoto y después de introducirla ya tendremos montada la unidad para navegar por ella.
Si queremos montar la unidad remota desde un script en Bash, por ejemplo, será necesario enviar la contraseña de un modo u otro.
La manera más segura es mediante clave pública/privada que veremos más adelante. En este momento la enviaremos mediante texto plano, lo que no es seguro y solo recomendable si estamos en nuestra propia red fuera de Internet.
Nos conectaremos de la siguiente manera, concatenando el comando echo
con sshfs
:
echo PASSWORD | sshfs usuario@server.com:/home/usuario -o password_stdin -p2221 /mnt/server
Si al acabar queremos o necesitamos desmontar la unidad de remota creada usaremos el comando fusermount
.
fusermount -u /mnt/server
Un pequeño truco o utilidad es crear un alias para acceder desde cualquier directorio a la unidad remota, por ejemplo:
alias server='cd /mnt/server/'
De esta manera, cada vez que escribamos server
nos llevará a /mnt/server
.
Aunque esto lo podemos hacer con cualquier directorio o unidad que usemos con frecuencia.