jump to navigation

SSH sin contraseña en solo 3 pasos 14 febrero, 2011

Posted by KZKG^Gaara in GNU/Linux y Free Soft, Terminal.
Tags: , , , , , , , , ,
trackback

Hola,

Aquí verán el cómo conectarse a una PC remotamente por SSH tan solo introduciendo el password una primera vez, luego aunque reiniciemos ambos ordenadores, no se nos volverá a pedir el password.

Pero, primero veamos una breve explicación sobre qué es SSH:

SSH es un protocolo, un medio de comunicación entre dos ordenadores. Nos permite administrar un equipo de forma remota. Cuando accedamos por SSH a otro equipo, el comando que introduzcamos en esa terminal se ejecutará en el otro equipo, de esta forma lo administramos/controlamos.

Todo lo que se transmita por SSH, va encriptado y con una seguridad considerablemente buena.

Ahora, veremos como en solo tres pasos configuraremos PC#1 para que acceda a PC#2 sin introducir contraseña:

Tenemos la siguiente situación:

PC#1 Desea conectarse a PC#2, sin tener que escribir password cada vez que se intente conectar a esta otra PC.

PC#2 Tiene instalado el servidor SSH. Esta es a la que PC#1 se conectará, y lo hará sin introducir password. En esta PC hay un usuario llamado remoto.

Empecemos…

1. En PC#1 escribimos lo siguiente:

  • ssh-keygen -b 4096 -t rsa

Esto generará una llave pública. Para no enredarnos mucho con “llaves públicas y privadas”, lo explicaré de forma muy simple.

Supongamos que tienes dos llaves de tu casa en el bolsillo, una se la das a tu novia ya que viven juntos, y con la otra te quedas solo tú, no se la das a nadie. Bueno, esa llave que le diste a tu novia, le permitirá entrar a tu casa sin decírtelo, sin pedirte permiso no? eso es una llave pública, una “llave” que permite que una PC acceda a otra sin tener que pedirte permiso (o sea, sin poner usuario+password)

Cuando pongan ese comando, les aparecerá eso:

2. Simplemente presionemos [Enter], un segundo después volvemos a presionar [Enter], y un segundo después volvemos una vez más a presionar [Enter]. O sea, presionaríamos [Enter] un total de tres (3) veces, solo lo presionamos… no escribimos nada 🙂

Cuando hagamos esto, nos aparecerá algo muy similar a lo siguiente:

Listo, ya tenemos la llave pública… ahora falta dársela a quien queramos (como el ejemplo, dársela a nuestra novia jaja)

Lo que queremos es que PC#1 se conecte a PC#2, ya en PC#1 hicimos todo lo anterior, en PC#2 no hemos hecho nada. Bien, PC#2 tiene de dirección IP por ejemplo 192.168.151.201.

3. Ponemos en PC#1 lo siguiente:

  • ssh-copy-id remoto@192.168.151.201

Esto lo que hace es simplemente darle la llave pública de PC#1 a PC#2, o sea, le dá a PC#2 la llave pública de PC#1, mientras que PC#1 se queda con su llave privada, ya saben; esa llave que no se le dá a nadie. Es importante no equivocarse con el usuario, o sea, si el usuario “remoto” no existe en PC#2 nos dará error, es importante estar claro en qué usuario usaremos para esto, además de que ese usuario con que configuramos el acceso sin password, será el mismo con que deberemos acceder en el futuro. Una vez hecho esto nos debe quedar así:

En el paso anterior, deben poner el password del usuario en PC#2.

Y listo… ya está todo configurado 🙂

Como bien nos aparece en la terminal, probemos si de veras todo funcionó 100% OK. Para probar, ponemos:

  • ssh remoto@192.168.151.201

Como ven en la imagen de abajo, a mí todo me funcionó de perlas, no me pidió password y pude acceder sin problemas.

Si desean acceder a otro ordenador también sin introducir password siempre (PC#3 por ejemplo), simplemente le damos nuestra llave pública y listo, o sea, una vez que hayamos hecho el paso #1 y #2 no lo tendremos que hacer nunca más. Si queremos acceder a PC#3 por ejemplo, que tiene por IP 192.168.151.203 tan solo ponemos:

  • ssh remoto@192.168.151.203

Hasta aquí el tutorial.

Explicar que, el nivel de seguridad cuando hablamos de SSH es realmente alto, la metáfora con que expliqué algunos pasos (la de darle la llave a nuestra novia) tal vez no sea la más adecuada jaja, ya que nuestra novia podría darle la llave a alguien más 😉 . Cuando hablamos de SSH, los principios de seguridad son fáciles de explicar, cuando intentamos acceder nuestro ordenador (PC#1) comprueba si en PC#2 hay una llave pública de nuestro ordenador (en este caso sí la hay, porque así lo configuramos), entonces, de haberla es simple, comprueba si esa llave pública es idénticamente igual a nuestra llave privada (esa que no le dimos a nadie). Si las llaves son idénticas nos deja acceder, de lo contrario y como medida de seguridad, no nos deja acceder remotamente al otro ordenador.

Así que ya saben… darle la llave de casa a nuestra novia no es lo más seguro, pero compartir llaves y acceder remotamente por SSH a otro ordenador, sí es seguro ^_^

Dudas o preguntas, quejas o sugerencias me las dejan saber.

Saludos a todos.

Comentarios»

1. Raspberry pi – Servidor web – Parte 1 | Nastify - 21 octubre, 2013

[…] Configurar SSH sin usar contraseña […]

2. Paco Mermelá - 16 abril, 2013

Muchas gracias. Llevo media mañana buscando documentación en inglés para que al final tu lo tengas en castellano y sea la que me funcione!

3. eddy - 4 abril, 2013

muy bueno pero no me queda claro donde tengo que poner los datos que vos das y donde me tengo que fijar si existe el remoto o la ssh

4. eduardo parejo - 27 febrero, 2013

Sin palabras solo me tomo 3 minutos en realizar la prueba exelente
muchas gracias

perry - 16 mayo, 2013

lo se

5. Anónimo - 3 noviembre, 2012

Genial, tras probar un monton, el tuyo me funcionó sin problema entre dos ubuntus. Gracias!

6. Anónimo - 29 octubre, 2012

me he pasado la mañana buscando manuales con cosas muy raras y contigo a la primera. Eres un fenomeno!!!

KZKG^Gaara - 29 octubre, 2012

Gracias jaja.
De hecho, hace mucho que no escribo acá en este blog, pues tengo mi propio sitio ahora, te recomiendo que te pases por los posts relacionados a SSH si te interesa el tema: http://blog.desdelinux.net/tag/ssh/

Saludos🙂

7. robersiles - 13 marzo, 2011

gracias por el articulo, es muy interesante.
El problema es que llevo a cabo el siguiente razonamiento y no consigo encontrar solución. mi razonamiento es erróneo, pero no se donde me equivoco:
imaginemos que quiero conectarme a A desde B. A y B están en lugares distintos (cada uno de ellos se conectan a internet mediante su router correspondiente), es decir, no están en la misma red local. cuando quiero escribir remoto@IPdeldestino ¿que ip del destino pongo? si pongo la ip privada del destino no funcionará, porque es la ip de su red local, pero si pongo la publica tampoco funcionará porque es la que el router usa para conectarse a internet y por tanto me conectaré al router en lugar de al pc de destino.

kzkggaara - 14 marzo, 2011

mmm al tener que pasar por un router, debes configurarlo para que de alguna forma, las peticiones que entren desde tu IP por el puerto 22 sean atendidas por la IP de la otra PC.

Esto es en teoría, nunca lo he intentado.
Disculpa por no poderte ser de más ayuda…

PD: Si el router lo admite, podrías crear una regla en el firewall para que haga forward.

Rafa - 15 julio, 2012

Debe hacer un NAT o Port Forwarding en el router para que el tráfico entrante por el puerto 22/tcp lo redireccione a la IP de B tras el router.


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: