¿Conocías… SSHFS?

14 05 2007

Hace unos días os preparé un tutorial bastante completo sobre el poderoso SSH y os anuncié que a lo largo de la semana os presentaría un par de utilidades complementarias muy prácticas. SSHFS es una de ellas. Gracias a esta aplicación podréis tener una carpeta en un PC remoto y trabajar con/en ella como si fuera local, con transparencia total y la seguridad que ofrece SSH al estar usándose por debajo.

Como siempre en esta sección está al alcance de tu aptitude/apt-get:

$ sudo aptitude install sshfs

SSHFS necesita el módulo «fuse» para poder funcionar, por lo que tendréis que ejecutarlo siempre. Para que no lo tengáis que hacer a mano y lo cargue el sistema automáticamente (y para comprobar si ya lo cargáis o no), abrid el fichero /etc/modules y comprobad si está:

$ sudo gedit /etc/modules

Si está, no tenéis que hacer nada más, cerrad gedit. Los que no lo tengáis simplemente agregad «fuse» al final del fichero por ejemplo, guardáis y cerráis gedit.

Los que lo hayáis metido ahora tenéis dos opciones para cargar fuse, reiniciar y que se cargue automáticamente mediante el archivo modules o cargarlo manualmente hasta que reiniciéis. Supongo que preferís la segunda opción:

$ sudo modprobe fuse

Hecho esto el último requerimiento que necesitamos es tener el servidor SSH funcionando. Los que no lo tengáis podéis seguir este manual para hacerlo y enteraros de qué es y para qué sirve.

En cuanto a configuración tan sólo tenéis que agregar vuestra cuenta al grupo que tiene acceso a fuse:

$ sudo usermod -G fuse -a tu_cuenta

Os aconsejo que ahora reiniciéis el entorno gráfico (Ctrl+Alt+Backspace) para tener la certeza de que se aplique vuestra adicción al agregado grupo, en caso contrario es muy probable que os dé un error de permisos si seguís adelante.

En el fondo ya está todo. Tenéis todo listo para montar la carpeta remota en vuestra carpeta local. Vamos a probarlo. Cread una carpeta donde queráis. Para que os sirva de ejemplo voy a crear la carpeta «pepino» en «/home/ceec/». Tan sólo teneíes que cambiar «ceec» por vuestra cuenta en los siguientes pasos.

$ mkdir /home/ceec/pepino

La carpeta «pepino» va a ser el punto de montaje de la carpeta remota. Es decir, cuando acceda a «pepino» voy a acceder a la carpeta del otro ordenador. En principio para montarla tan sólo tenéis que hacer esto:

$ sshfs ceec@192.168.1.4:/home/ceec /home/ceec/pepino/

Los que ya sabéis cómo funciona SSH no os habréis sorprendido, los que no tranquilos, es fácil de entender:

  • sshfs es el comando que va a realizar el montaje remoto
  • ceec es la cuenta a la que tenéis acceso en el equipo remoto. En mi caso es el portátil y se llama también ceec, como en el equipo de sobremesa.
  • 192.168.1.4 es la ip del portátil en la red local. Puede usarse perfectamente una IP pública (la de internet) para acceder desde el trabajo a casa por ejemplo.
  • /home/ceec es la carpeta del ordenador remoto que quiero montar en…
  • /home/ceec/pepino/ que es la carpeta del equipo que tengo delante.

Supongo que ya lo habéis entendido bien. Pero hay un pequeño problema. Si no habéis sido previsores funcionará sin problema ya que SSH y por consiguiente SSHFS usan el puerto 22 por defecto. Si no habéis seguido el manual de SSH donde os recomendaba entre otras cosas que cambiarais el puerto os habrá funcionado. Los que sí me hicieran caso, no les habrá funcionado porque el puerto que usáis en SSH no es el 22.

Para indicarle a SSHFS qué puerto hay que usar es igual que en SSH, es decir:

$ sshfs -p 8448 ceec@192.168.1.4:/home/ceec /home/ceec/pepino/

Siendo 8448 el puerto del ordenador remoto. Ahora no debería daros ningún problema. Id a la carpeta que hayáis montado (en el ejemplo /home/ceec/pepino/), entrad y veréis que aparecerán todo lo que tuviérais en la carpeta que le hayáis indicado del equipo remoto (en el ejemplo /home/ceec).

A partir de este momento, todo lo que borréis, añadáis, modifiquéis… de esa carpeta, lo haréis también de la carpeta del otro ordenador.

Tan sólo queda un detalle por enseñaros. Una vez montada la carpeta… ¿cómo se desmonta?

$ fusermount -u /home/ceec/pepino

Listo. Es un buen método para tener algo de vuestro ordenador siempre accesible, o bien para trabajar directamente sobre tus archivos remotos, o bien para compartir lo que queráis a modo de FTP casero o algo parecido. Hay otras alternativas como SFTP y SAMBA, pero hay un punto a favor muy bueno para usar SSHFS, su facilidad de instalación, configuración, uso y, sobre todo, su seguridad ya que toda la información que viaje de un equipo al otro estará encriptada.

Práctico, ¿verdad? 😉

Más «Conocías…» entre tuxes y pepinos

Acciones

Information

29 responses

14 05 2007
Ubuntips

Muy buen post!!! Fácil sencillo y seguro. Gracias.

14 05 2007
CeeC

De nada hombre, para eso estamos xD

15 05 2007
sistemasoperativos

Muy interesante, muy práctico

17 10 2007
piponazo

he realizado todos los pasos tal y como indicas, pero no consigo acceder a un ordenador remoto si no ejecuto el comando sshfs con un «sudo» delante. Cuando lo hago sin sudo me da el siguiente error tras introducir la contraseña:
fuse:failed to open /dev/fuse: Permission denied

18 10 2007
CeeC

Hola piponazo.

El error que te da es que no tienes permisos para hacer uso de fuse. ¿Hiciste el «sudo usermod -G fuse -a tu_cuenta»? De ser así prueba reiniciando la máquina entera por si acaso, aunque en principio con reiniciar el entorno gráfico sería suficiente.

Saludos.

1 11 2007
Carlinux

Hola!
(peligro! novato total)
Tengo un problemilla con el sshfs que me va a volver loco del todo. A ver si se os ocurre algo.

Tengo un macbook con macfuse y un servidor de ficheros con ubuntu Gutsy. El mac me deja montar lo que quiera pero solo los directorios propios del sistema linux. En el momento que quiero entrar en una unidad ntfs dentro del gutsy a traves del sshfs me dice que nanai permiso denegado.
uso el comando
$sshfs -p 21 carlinux@10.0.0.20:/media ~/linux/

He descubierto que si añado la opción
$sshfs -p 21 carlinux@10.0.0.20:/media ~/linux/ -o defer_permissions
me deja entrar en estos discos ntfs y mover y borrar archivos pero NO MOVERLOS DESDE EL MACBOOK!!! osea que consigo acceso y privilegios pero no puedo traspasar archivos,, arrj

El caso es que antes de instalarme Gutsy FUNCIONABA PERFECTAMENTE BAJO LA ANTERIOR distribución FEISTY FAWN.

bueno, gracias de antemano y un saludo

20 11 2007
3 05 2008
sanime

Dejame agradecerte, que tutoriales tan buenos. Estoy super emocionado aprendiendo ssh y ahora sshfs. Tenia un problema, puesto que tengo una ip privada dentro de un router con ip dinamica publica, pero que no puede acceder a el.Entonces no podia copiar archivos porque simplemente no existia algun puerto libre o no podia abrirlos y que crees? sshfs lo permite sin necesidad de colocar mi dirección pública con la asignación de puertos. Que simple!!! MUCHAS GRACIAS EN VERDAD

4 05 2008
CeeC

Me alegro que disfrutes con la lectura sanime 😉

Saludos.

1 06 2008
mount

Muchas gracias por el tutorial: muy bueno y facil de seguir.
De todas formas, planteo un problema que me surje, por si alguien me puede orientar: al ejecutar el comando sshfs me monta todo el contenido de la carpeta remota excepto los accesos directos (si pulso en ellos me da un mensaje de error).
Esto no me ocurre si accedo a la carpeta usando otros protocolos como ssh o samba.
¿Hay alguna manera de corregir este error?

7 06 2008
CeeC

@ mount: Ayudaría conocer el mensaje de error que te da xD

Saludos.

8 06 2008
mount

Gracias por la respuesta.

Utilizo esta orden en la consola:

sshfs username@fileserver:/ruta/ /media/server

El mensaje de error es el siguiente:

El enlace «web» está roto. ¿Quiere moverlo a la papelera?
Este enlace no puede usarse, porque su destino no existe.

El resto de las carpetas funciona perfectamente: puedo abrirlas, crear archivos, modificar, etc.

El caso es que usando otros protocolos, por ejemplo ssh o samba desde la barra de direcciones de nautilus, me funciona bien: el enlace está perfectamente operativo y la ruta es válida.
Prefiero no usar estos protocolos pues me encuentro con problemas al crear archivos desde open office: no me deja grabarlos en la ruta del servidor pues da dos errores: primero «el nombre del archivo no existe» y luego «error de internet».

Saludos.

8 06 2008
Javier de la Rocha

Saludos,
Muy utiles tus manuales, soy usuario reciente de linux, y estoy aprendiendo.
GRacias a tus manuales logre montar una carpeta de una pc en otra, con sshfs. Me gustaria saber como montarla automaticamente al encender las computadoras, (supongo que al iniciar sesion), para no teclear en terminal cada vez que quiera acceder a la carpeta remota. Si hay una manera, Gracias.

8 06 2008
mount

Pienso que te servirá el comentario número 82 en el siguiente link:

No soy experto y seguramente sea inexacto, pero consiste en una línea en /etc/fstab

sshfs#username@yourserver:/pathonserver/ /yourmountdir fuse uid=1000,gid=100,umask=0 0 0

Y otra línea en menu->sistema->preferencias->sesiones->programas de inicio

sshfs username@yourserver:/pathonserver/ /yourmountdir

Al iniciar la sesión, se pide el password y se monta automáticamente.
Espero que te solucione el problema

8 06 2008
mount

Pienso que te servirá el comentario número 82 en el siguiente link:

http://ubuntu.wordpress.com/2005/10/28/how-to-mount-a-remote-ssh-filesystem-using-sshfs/

No soy experto y seguramente sea inexacto, pero por lo que he entendido, consiste en una línea en /etc/fstab


sshfs#username@yourserver:/pathonserver/ /yourmountdir fuse uid=1000,gid=100,umask=0 0 0

Y otra línea en menu->sistema->preferencias->sesiones->programas de inicio


sshfs username@yourserver:/pathonserver/ /yourmountdir

Al iniciar la sesión, se pide el password y se monta automáticamente.
Espero que te solucione el problema

15 06 2008
CeeC

@ mount: ¿Cómo se llama tu usuario y tu máquina? ¿Has probado usando la ip del PC remoto directamente en lugar del nombre del mismo?

@ Javier de la Rocha: Puedes crearte un script y ejecutarlo desde «Sistema > Preferencias > Sesiones > Programas de inicio«.

Saludos.

19 06 2008
mount

He probado usando la ip del servidor directamente y el resultado es el mismo.
Mi usuario es vntsd y la máquina es oem-laptop.

Aunque no es la solución óptima, lo he resuelto montando directamente la carpeta que apunta el acceso directo.

Gracias

24 06 2008
choco

El post fue muy bueno y util .. ahora tengo un aconsulta .. alguien sabe como puedo hacer para usar el sshfs accediendo a un server que tiene doble logueo ?

osea .. me conecto a un usuario que no tiene permisos para casi nada . y luego deberia loguearme como root al mismo .. existe alguna chance de hacerlo ? ya que como root no me va a dejar entrar nunca .. y si entro con el otro usuario no puedo ver los archivos ni los directorios que necesito editar.

Muy bien explicado el post.

poooositive

8 07 2008
SSHFS « Hilos en la red

[…] Para la explicación de la instalación de SSHFS me referiré acciones generales que el usuario debe realizar, apoyadas con comandos de mi distribución de GNU/Linux (ArchLinux). Se asume que se tienen permisos de administrador del sistema, bien por acceso mediante usuario root o bien mediante el comando sudo. Se puede encontrar una guía de instalación sencilla para distribuciones basadas en Debian en este enlace. […]

16 09 2008
debian-ar.org » ¿Conocías… SSHFS?

[…] Fuente […]

26 05 2009
21 10 2010
h45h

Gracias!! muy útil!! muy buena tu pagina, me sirvió mucho este articulo y el de SSH, siempre existe algo mas para aprender 😉

4 12 2013
iuokjk

tus muertos

21 11 2010
VICTUX | victux

[…] SSHFS: Trabaja con/en una carpeta remota como si fuera local […]

4 12 2013
iuokjk

tu puta madre so puta

10 04 2011
4 12 2013
iuokjk

eeeee

4 12 2013
iuokjk

tus muertos guapo

11 06 2015
Servidor casero desde cero (5): Solución segura para montar unidades de red | Giingo

[…] Información extraída casi exclusivamente del blog Entre tuxes y pepinos. […]

Deja un comentario