viernes, 25 de junio de 2010

Crear una red local entre varios pcs con Ubuntu (o derivadas ), con el protocolo sftp y Nautilus

La idea es crear una red local con los pcs con linux que tenemos en nuestra casa, de forma que podamos explorar desde cualquiera de ellos los directorios de los otros pcs.

Explorar un equipo remoto por medio de sftp y nautilus: Como norma general, para realizar la exploración entre pcs es necesario conectar estos equipos en red local mediante algún protocolo como smb (samba – comparticiones de windows), ftp, webdav, sftp (secure ftp) entre otros.

El protocolo sftp ( Secure File Transfer Protocol ) permite conectarnos a un equipo (servidor) que tenga instalado openssh ( openssh-server ), y nos permite explorar todo su contenido desde el usuario (del equipo cliente) desde el que nos conectemos y en el que tengamos instalado openssh-client.

Para comenzar necesitamos tener instalados algunos paquetes: openssh-server y openssh-client ; los instalamos con synaptic, o con la terminal:

En el equipo remoto/servidor: sudo apt-get install openssh-server
En equipo local/cliente: sudo apt-get install sshfs openssh-client

Si queremos explorar tanto desde el pc1 el pc2 como al contrario, desde el pc2 el pc1, debemos instalar en los dos pcs ambos paquetes, de forma que ambos pcs puedan actuar como remotos/servidores y como /locales/clientes.

A partir de ahora vamos a trabajar en el pc cliente: una vez que tenemos estos paquetes instalados abrimos el Nautilus en su modo de navegador y damos click en el botón de cambiar la barra de dirección entre botones y texto para que podamos escribir la dirección a la que queremos llegar.



Si queremos configurar Nautilus de forma que siempre aparezca con la barra de dirección de forma editable, abrimos el programa Gconf-editor y vamos a Gconf-editor -> apps -> nautilus -> preferences -> activamos "always_use_location_entry" .

Una vez que tenemos la barra de dirección editable escribimos la linea de conexión de esta forma:

sftp://<ip>/<carpeta o dirección en el equipo remoto>  por ejemplo
sftp://192.168.2.27/home/ordenad2r


También podemos agregar el usuario ( remoto ) a la linea de conexión de esta forma:

sftp://<usuario>@<ip>/<carpeta o dirección en el equipo remoto>  por ejemplo
sftp://ordena2r@192.168.2.27/home/ordena2r


Después damos enter y nos aparecerá una ventana en la que nos pedirá el nombre de usuario del equipo servidor (si no lo incluimos en la linea de conexión) y contraseña y en donde podemos elegir una opción ( olvidar la contraseña, recordarla solo para la sesión o recordarla siempre ) para manejar las identidades y al dar click ok.

Editado/añadido ( gracias a un comentario de Cento ) : El pc cliente puede también solicitar un dominio, caso de no conocerlo, en ese caso hemos de poner  localhost , de lo contrario no nos conectaremos.




Si los datos son correctos Nautilus mostrara los archivos de la carpeta del pc servidor a la que nos acabamos de conectar,



Aveces puede aparecer un error que indica que Nautilus no sabe como manejar el protocolo sftp,  pero puede ser un error del Nautilus que no afecte la conexión. Si nos hemos conectado debe aparecer, en la barra lateral,  un elemento con la leyenda “sftp” similar a este:



También debe de haberse creado un nuevo icono de la conexión en el escritorio.

Podemos, para tener un acceso rápido a esa dirección la próxima vez que queramos conectarnos con el otro pc, añadirla al nautilus del pc cliente: Nautilus -> seleccionamos la dirección sftp -> marcadores -> añadir marcador.  Luego si queremos podemos cambiar el nombre al nuevo marcador: Nautilus -> marcadores -> editar marcadores -> cambiar el nombre y le ponemos uno mas descriptivo, por ejemplo " portátil de rafa". De esta forma la próxima vez que nos conectemos solo tendremos que hacer clik sobre el nuevo marcador "portátil de rafa".



Este sistema te deja, desde el pc cliente,  hacer uso de los archivos del pc remoto de forma casi local, es decir, si queremos editar un archivo simplemente le damos doble click y este se abrirá y te dejara editarlo y al guardar los datos se guardaran en el equipo remoto ( pero también podemos hacer "guardarlo como", en cuyo caso lo podemos guardar en donde queramos: en el pc cliente, en otro pc de la red local, en un pendrive/disco duro externo, etc ).

También podemos reproducir vídeo y audio sin mayor problema y sin necesidad de copiar el archivo a nuestro equipo local.

Es decir, desde el pc cliente podemos ver, editar, ejecutar, copiar, mover o borrar archivos de los pcs que tengamos en la red local creada de esta manera.

Una vez que se ha terminado de usar la conexión esta puede ser cerrada dando click al icono de “eject” que esta en la barra lateral a un lado de la carpeta montada:



Para cerrar la conexión también se puede dar click derecho a la carpeta que aparece en el escritorio y seleccionar la opción desmontar

Una vez que el elemento desaparezca de la barra lateral la conexión habrá quedado cerrada, pero podremos volver a abrirla si , como indicamos antes, hemos creado un marcador para dicha conexión.

Las conexiones establecidas quedan montadas en una carpeta con el nombre de la conexión y se crea dentro de una carpeta llamada .gvfs que esta en el directorio del usuario que hizo la conexión.

-----------------------------------

Tema realizado gracias a Uleti, del foro de Linuxmint-hispano.


26 comentarios:

  1. Justo en la imagen que aparece después del párrafo siguiente:
    "Después damos enter y nos aparecerá una ventana en la que nos pedirá el nombre de usuario del equipo servidor (si no lo incluimos en la linea de conexión) y contraseña y en donde podemos elegir una opción ( olvidar la contraseña, recordarla solo para la sesión o recordarla siempre ) para manejar las identidades y al dar click ok"
    El pc cliente puede también solicitar dominio, caso de no conocerlo en ese caso hemos de poner 'localhost' (sin comillas), de lo contrario no nos conectaremos.

    ResponderEliminar
  2. Esta forma no me funciona hatteras. Después de meter la IP y darle a enter me dice: Firefox no sabe cómo abrir esta dirección, porque el protocolo (sftp) no está asociado con ninguna aplicación.

    ResponderEliminar
  3. Eco:
    Se pone en Nautilus, no en Firefox.
    En todo el tema no se nombra Firefox para nada. Todo es en relación con Nautilus ( el administrador de archivos ).

    ResponderEliminar
  4. Saludos, la contraseña y usuario, donde se establecen o configuran, y por ultimo funciona con thunar?? bueno es que en una pc tengo ubuntu 10.04 y en otra (X)ubuntu 11.10

    ResponderEliminar
  5. Fisicamente, que necedito para realizar la red, (router, rj45, etc.), gracias.

    ResponderEliminar
  6. ¿ Donde establezco/configuro el usuario y contraseña ? !!!saludos!!!

    ResponderEliminar
  7. Bastian y Victor:
    El usuario y contraseña de los que hablo son los mismos de la sesión que estés usando. No hay que crear un usuario distinto, ni asignar una contraseña distinta.
    La red local que tengo configurada consta de: pcs con linux ( Mint), router mixto ( al que se le pueden conectar pc por cable, o por wifi ), la conexión entre los pcs es por wifi.
    No uso Thunar, pero debería ser posible.

    ResponderEliminar
  8. Perdón, Bastian y Victor es la misma persona, como no vi que se mostrara el primer comentario hice las mimas preguntas, dejando eso de lado, pruebo y comento resultado, por ultimo no tengo la posibilidad del wifi, pero con cable debería funcionar ¿verdad ?, al igual tengo un router mixto, saludos y gracias por tu tiempo.
    ------
    Otra vez yo, jeje, muchisimas gracias, ya lo logre, lo hice sin ningun problema, conexion exitosa, seguramente por aki andare preguntando de nuevo sobre algun otro tema, que tengas un excelente fin de año, saludos!!!!!

    ResponderEliminar
  9. Parece ser que en windows hay un programa ( swish-0.7.0 http://www.softpedia.es/descargar-Lamaison-Swish-150572.html) que permite conectar pcs con windows con pcs con linux usando este mismo protocolo. Si funciona, permitirá crear redes locales mixtas ( windows-linux). No lo he probado.

    ResponderEliminar
  10. Ha funcionado perfectamente, sencillo y efectivo, muchas gracias... Pero ahora querría poder hacer lo mismo por wifi... Si sabes hacerlo ¿podrías explicar como se hace?

    Saludos, dada.

    ResponderEliminar
  11. Dada:
    La red local que tengo configurada consta de: pcs con linux ( Mint), router mixto ( al que se le pueden conectar pc por cable, o por wifi ), la conexión entre los pcs es por wifi: el pc fijo se conecta al router por cable, y el pc portátil via wifi. Y me funciona, haciendo lo que se expone en el tema.

    ResponderEliminar
  12. Bien he...

    Me fue de gran ayuda, facil y rapido.

    Saludos.

    ResponderEliminar
  13. Funciona perfecto. Muchas gracias.

    Quería saber si es posible hacer lo mismo pero entre ordenadores que no se encuentran conectados al mismo router. Me gustaría poder acceder desde casa a archivos que están en el ordenador del trabajo. No a través de Teamviewer, controlando todo el ordenador, sino igual que aquí, solo acceder a ciertas carpetas.

    ¿Sabes a qué dirección de ip habría de conectarme? He probado utilizando estos mismos parametros pero, desde casa, no encuentra la ip. Con los dos ordenadores en el trabajo, ya te digo, funciona perfectamente.

    Gracias de antemano. Saludos.

    ResponderEliminar
  14. Juan Carlos Senar:
    La ip a la que hago referencia en este tema es la ip privada. En el tema http://hatteras.wordpress.com/2013/01/24/averigurar-nuestra-direccion-ip-publica-e-ip-privada/ puedes ver como saber la ip privada y la ip pública de tu pc.
    Para hacer lo que indicas se debería usar la ip pública.
    No lo he probado.
    Si lo haces y te funciona, te agradecería lo comentaras aquí mismo.
    Gracias.

    ResponderEliminar
  15. Hola de nuevo. Lo he probado con el ordenador de un amigo (los dos con Mint 13) y no he sido capaz de conectar. Me ha dado su IP Pública y, tras pasar un rato pensando, sale el mismo mensaje: "no es posible conectar a XX.XX.XXX.XXX.

    Supongo que haremos algo mal. Seguiré investigando porque seguro que se puede hacer y será una cosa sencilla pero....

    Gracias por la respuesta.

    ResponderEliminar
  16. Aaaaah! se me ha olvidado decirle que compruebe que tuviera el cortafuegos desactivado. Ahora es tarde. Ya lo probaré y comentaré el resultado.

    ResponderEliminar
  17. Hola:

    Listo. Funciona perfectamente. Hay que acordarse de desactivar el cortafuegos (o abrirlo a la ip desde la que se nos van a conectar) y también abrir (si no lo está ya) el puerto 22 en el router aunque aquí:

    http://www.univunix.com/tutoriales/tutorial-de-ssh-configura-tu-pc-para-controlarlo-remotamente/

    incluso recomiendan (optativamente) modificarlo por seguridad.

    Después, basta introducir la ip pública (más el puerto, si lo hemos modificado) en el navegador de archivos y la conexión es perfecta.

    Muchas gracias. Saludos.

    ResponderEliminar
  18. Juan Carlos Senar:
    Me alegro de que lo hayas conseguido...y de lo hayas compartido aquí, en éste que es también tu blog.
    Muchas gracias.

    ResponderEliminar
  19. De nada, ;-).

    He probado también el acceso remoto con VNC y ha funcionado igualmente (excepto lo de poner la contraseña) y me parece muy interesante:

    http://www.adslayuda.com/Linux-vnc_linux.html

    Saludos.

    ResponderEliminar
  20. Juan Carlos Senar:
    ¿ VNC ? Quizas te guste Remmina:http://hatteras.wordpress.com/2012/12/30/remmina-cliente-de-escritorio-remoto-en-una-red-local-con-pcs-con-linux/

    ResponderEliminar
  21. Hola Hatteras:

    Pues es una buena opción. La transferencia de archivos funciona bien pero la opción vnc no. Comentas que hay que usar el puerto 5901 pero si están en red local (al mismo router) no haría falta ¿verdad?. Además, ¿donde se indica el puerto?¿en la opción "Repetidor"? He probado "permitiendo tunel SSH" y sin permitirlo, por si acaso.
    Y ¿en el pc controlado no hay que instalar nada?
    Gracias.

    ResponderEliminar
  22. JC Senar:
    Otra forma: http://hatteras.wordpress.com/2011/06/20/controlando-un-pc-remoto-en-una-red-local/
    El puerto 5901 es el que usa remmina por defecto con el protocolo vnc. Si que hay que ponerlo, a mano, en la línea "servidor", tras la ip privada del pc a vigilar, por ejemplo:
    Servidor: 192.168.1.9:5901
    Como siempre que se toquetean cosas de red, hay que o bien comprobar que el firewall no está activo, o que permite el uso del puerto.

    ResponderEliminar
  23. Hola Hatteras: Ya lo he conseguido. El resultado con Remmina+Escritorio remoto es muy bueno.

    Varias cosas por comentar:

    1.- En Mint 13 Mate no está disponible la opción Sistema > Preferencias > Escritorio remoto. La alternativa, como indicas, es hacer en el terminal vino-preferences para poder cambiar las preferencias del Escritorio remoto.

    2.- Aun así, hecho esto, el servidor no arranca y la conexión desde el cliente no se puede hacer. En este enlace

    http://www.tecnogame.org/2012/07/habilitar-acceso-remoto-en-linux-mint-13-maya-mate/

    se explica como añadir esa entrada al menú de Mint así como la forma de arrancar el servidor (una vez modificadas la preferencias de vino) con el comando

    sudo /usr/lib/vino/vino-server&

    Una vez hecho esto sí consigo conectarme.

    En ese artículo también se comenta cómo hacer que el servidor arranque al inicio del sistema, que es lo interesante, añadiendo la siguiente línea en una nueva entrada en Aplicaciones al inicio

    /usr/lib/vino/vino-server –sm-disable

    pero lo he probado y no funciona. ¿Sabrías cual es la sintaxis correcta para conseguir que el servidor arranque por defecto?

    Gracias.

    ResponderEliminar
  24. JC Senar:
    Si no te funciona añadiendo el comando a Aplicaciones al inicio, puedes probar de varias formas:
    - http://hatteras.wordpress.com/2012/06/06/hacer-que-se-ejecute-un-script-en-el-inicio-del-sistema/
    -http://hatteras.wordpress.com/2010/12/02/crontab-programarautomatizar-tareas/
    http://hatteras.wordpress.com/2010/12/15/programarautomatizar-tareas-repetitivas-con-gnome-schedule/
    -http://hatteras.wordpress.com/2010/12/21/programarautomatizar-tareas-no-repetitivas-con-el-comando-at/
    -http://hatteras.wordpress.com/2010/12/27/programarautomatizar-tareas-no-repetitivas-con-gnome-schedule/

    No uso mate, sino cinnamon, por lo que no puedo ayudarte mucho mas.

    ResponderEliminar
  25. Primero quería agradecer por crear este maravilloso post y segundo pedir ayuda :-( ... tengo una red domestica con 4 computadoras , con sistema operativo windows 7, estoy usando UNISON-GTK gui compatible con win7, intento usar ssh para sincronizar mis computadoras pero no se que poner aquí :

    Conection Setup
    Synchronization Kind : Using SSH
    configutarion
    Host : ??????????
    User : ???????????

    , en cmd msconfig/all me sale la siguiente descripcion :

    nombre de host ...... :PC10
    Direccion IPv4 ........ :192.168.1.110

    ahora como debería de proseguir avanzando , si me pudieran ayudar les quedaría enormemente agradecido.

    ResponderEliminar

A la vez que haces un comentario, por favor da una puntuación al tema: malo, normal, bueno o muy bueno.
Gracias.