Configura conexiones SSH sin password en solo 3 pasos

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 root.
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 10.10.0.5.
3. Ponemos en PC#1 lo siguiente:
  • ssh-copy-id root@10.10.0.5
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 “root” 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 :D
Como bien nos aparece en la terminal, probemos si de veras todo funcionó 100% OK. Para probar, ponemos:
  • ssh root@10.10.0.5
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 10.10.99.156 tan solo ponemos:
  • ssh root@10.10.99.156
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.