HackingLinuxServidores

SSH, LLaves publicas (ssh-parte 2)

Header_Encryption

SSH, LLaves publicas (ssh-parte 2)

El protocolo SSH utiliza tanto cifrado simétrico como asimétrico, cada uno en tareas diferentes.
Al momento de configurar SSH, no es recomendable utilizar una contraseñas como método de autenticado, es mejor usar llaves públicas y privadas.
Si hablamos de algoritmos criptográficos, seguramente se te vendrá a la cabeza RSA, ECDSA, DSA… y muchos otros.
Ahora, ¿Cúal debemos implementar en nuestra configuración?
Al generar nuestras llaves, tenemos la posibilidad de escoger que algoritmo usaremos para el proceso, y tal vez debamos conocer una diferencia clave entre ECDSA y RSA. En este apartado podrán encontrar más información, pero básicamente ECDSA es más liviano, lo que permite utilizar menos ancho de banda en la conexión. Una llave pública de 2048 bits en RSA nos provee un nivel de seguridad de 112 bits, y ECDSA sólo requiere de 224 bits para proveernos del mismo nivel de seguridad.
Curioso, ¿no?. RSA es un algoritmo antiguo y ya no se recomienda su uso.
Bueno, esto ya queda a elección de cada uno.
Ahora, ¿Cómo generamos una llave pública y privada? ssh soporta 256, 384, y 521 bits en ECDSA, es altamente recomendable usar 521bits.
Comandos:

Para ECDSA:


root@b4rt$ ssh-keygen -t ecdsa -b 521

-t: El algoritmo de cifrado
-b: Tamaño de bits a usar

El comando anterior nos genera la llave en las carpetas por defecto de nuestro usuario, pero podemos especificar la ruta, con el argumento “f”.


root@b4rt$ ssh-keygen -f /home/b4rt/key_ecdsa -t ecdsa -b 521

Para RSA:


root@b4rt$ ssh-keygen -t rsa -b 4096

Igual, especificamos la ruta de guardado de las llaves.


root@b4rt$ ssh-keygen -f /home/b4rt/key_ecdsa -t ecdsa -b 521

Copiando una llave pública al servidor

Para conectarnos sin utilizar una contraseña necesitamos que el servidor al cual queramos acceder, tenga nuestra llave pública.
Podemos hacerlo de 2 formas.
La primera, obviamente copiar nuestra llave pública, llevarla al servidor y ponerla en elfichero 'auhorized_keys'”. El path de este fichero está declarado en el archivo de configuración de ssh ‘sshd_config’ (configurando el servidor aquí ) .

La otra forma, que es mucho más práctica, es utilizar 'ssh-copy-id'

root@b4rt$ ssh-copy-id  -i .ssh/id_rsa.pub -p 22 root@192.168.1.5

-i  :  La ruta de nuestra llave pública.
-p :  Puerto de ssh
-[user]@[IP]:  El servidor, y usuario al cual vamos a copiar la llave.
-f :Esta opción sirve para evitar que se verifique si ya existe la llave pública en el servidor, tener cuidado, pues podríamos copiar muchas veces la misma llave.
El resultado debería ser algo similar a lo siguiente:

Finalmente verificamos si la llave se copió correctamente, conectandonos nuevamente, y si todo  salió bien, no nos pedirá una contraseña.

Importante!!

Al momento de generar la llave, es altamente recomendable utilizar una Passphrase, pues como te habrás dado cuenta, si alguien llegara a tener acceso a nuestra llave, podría utilizarla para conectarse al servidor. Si la llave tiene una passphrase, tendremos que ingresarla cada vez que nos conectemos al servidor.

 

Ahora, vamos a configurar shh para el servidor, el la parte 3.

Related posts
Linux

My problem with Arch Linux

HackingLinuxServidores

¿Qué es SSH? (ssh-parte 1)

HackingLinuxServidores

Configurando el servidor SSH (ssh-parte 3)

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *