Manejo de pares de claves y conexiones SSH
5/5/20255 min read


Accedemos a nuestro usuario bandit13 con el comando sshpass -p 'FO5dwFsc0cbaIiH0h8J2eUks2vdTDwAn' ssh bandit13@bandit.labs.overthewire.org -p 2220 como ya sabemos junto a su respectiva contraseña.


Aplicamos XTERM Como ya sabemos para poder limpiar el terminal sin problema con CTRL + L


Ahora siguiendo las indicaciones de bandit nos indica que la contraseña se almacena en el archivo /etc/bandit_pass/bandit14 Pues vamos a por ello...


Como vemos si intentamos listar el contenido del archivo bandit14 nos dice que permiso denegado. Y si comprobamos los permisos podemos ver que como propietario esta bandit14 que no podemos hacer nada sobre ese archivo. Por lo tanto vamos a ver como logramos acceder de manera forzada a este archivo y a la clave


Claro nosotros como usuarios podemos conectarnos vía ssh con nuestra clave al usuario que queremos dentro de la maquina que queremos. Es decir al usuario bandit13 a la maquina bandit. En este caso ¿Cómo podríamos conectarnos al usuario bandit14 sin clave?¿Eso es posible? La respuesta es SI


Ahora nos vamos al directorio principal con el comando cd, seguidamente aplicamos el comando ls -la para ver los directorios ocultos. Y como podemos comprobar tenemos un directorio llamado .ssh en caso de tener el ssh instalado. Si no es el caso ahora os muestro como instalarlo...


Podemos realizarlo de varias manera. Una de ellas es apt install openssh o bien apt install ssh directamente. Como vemos en la imagen


Ahora activaremos el servicio ssh de la siguiente manera $ sudo systemctl start sshd donde con systemctl start indicamos que queremos iniciar dicho servicio. Primero haremos un $ sudo systemctl enable ssh Para activar el servicio y luego un $ sudo systemctl start sshd para arrancar el servicio.


Ahora nosotros podemos conectarnos via ssh a nuestro usuario actual con el comando $ ssh facu@localhost o bien $ ssh facu@127.0.0.1 que sería lo mismo Podemos observar que nos pide nuestra contraseña. La contraseña del usuario facu. La introducimos y estamos dentro del usuario facu. Pero ¿ Para que sirve esto si ya estoy dentro del usuario facu? Pues básicamente si nos imaginamos que tenemos un tercer ordenador. Y quisiéramos entrar desde ese tercer ordenador o maquina al usuario facu. Lo podríamos hacer de esta manera proporcionando la ip de la maquina facu junto a su usuario y contraseña. ¿ Entonces de que manera podría yo tratar de no tener que introducir una contraseña? De la siguiente...


Vale pues nuestra misión sería ahora crear un par de claves. ¿Qué son un par de claves? Pues muy sencillo, una clave publica y una clave privada. Y lo haremos con el siguiente comando $ ssh-keygen. Le daremos a todo Enter Y se nos crearán 2 archivos: id_rsa y id_rsa.pub


Esta sería nuestra clave privada


Y esta sería nuestra clave publica. Nosotros si ahora quisieramos acceder de manera remota al usuario facu podriamos hacerlo mediante la clave publica


Y ¿Cómo lo hacemos? Pues copiando la clave publica y poniéndole el nombre authorized_keys si no lo copiamos y lo llamamos así al archivo NO VA A FUNCIONAR




Y si lo hemos echo correctamente, al volver a iniciar sesión via ssh al usuario facu@localhost veremos que ya no nos va a pedir contraseña. Dado que lo que hemos realizado es que dentro del archivo .ssh del usuario facu, dentro del archivo authorized_keys este nuestra clave publica. Por lo que al detectar que la clave publica del usuario facu esta dentro puede acceder con la puerta abierta. Esto lo podríamos hacer de manera remota también. Es decir si le introducimos la clave publica al archivo authorized_keys de la tercera maquina. La tercera máquina podrá acceder sin contraseña mismamente. Dentro de la misma ruta /home/facu/.ssh como hemos visto previamente


Otra manera sería eliminar el archivo authorized_keys. Y coger la clave privada y hacerla autorizada para que cualquiera que tenga esta clave podrá conectarse de manera remota.




Ahora con $ ssh-copy-id -i id_rsa facu@localhost Podemos conectarnos de manera remota, proporcionando la clave privada al usuario facu@localhost E introduciendo la contraseña del usuario. Para agregar dicha clave al archivo authorized_keys automaticamente. Por lo cual, una vez agregada al archivo authorized_keys. Podemos compartir la clave con quien queramos que podrá iniciar sesión de manera remota unicamente proporcionando la clave privada de la siguiente manera...


Si aplicamos el comando ssh -i id_rsa facu@localhost podemos ver que se nos conecta sin necesidad de contraseña.


Ahora eliminamos todo el contenido de /home/facu/.ssh Con rm * Y realizaremos un $ sudo systemctl stop sshd


Bien ahora nos volvemos a conectar al usuario bandit13 Y como podemos ver tenemos el archivo sshkey.private El cual es una clave privada. Entonces vamos a aplicar lo mismo


Cogeremos nuestra clave privada sshkey.private y utilizaremos el mismo comando que hemos visto $ ssh -i sshkey.private bandit14@localhost -p 2220 Junto al parametro -p 2220 para indicarle que queremos usar el puerto 2220.




Y si ahora vemos el archivo /etc/bandit_pass/bandit14 Podemos ver la clave sin problema alguno.
MU4VWeTyJk8ROof1qqmcBPaLh7lDCPvS