- Cuando necesitamos conectarnos a un servidor o dispositivo por SSH (Secure Shell), normalmente lo hacemos a través de un cliente SSH autenticándonos con usuario y contraseña, es la forma más sencilla, sin embargo, este método no es del todo seguro porque está propenso a que por cualquier motivo descubran tus datos de acceso y podrán ingresar al servidor, es por esto en se recomienda usar la autenticación por clave SSH.
Para este tutorial usaremos como cliente SSH PuTTY, también usaremos la herramienta llamada PuTTYgen que nos generará las llaves, luego una de esas llaves (la pública) será llevada al servidor y la otra llave (la privada) se usará con el cliente PuTTY para la conexión.
- Descarga de PuTTYgen: Realizamos la descarga a través del siguiente enlace https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
Luego de descargado lo ejecutamos:
- Generar el par de llaves SSH:
Nota: La configuración predeterminada es segura para que la puedas usar, pero es posible que puedas cambiar el tipo de llave a generar como por ejemplo SSH-1 (RSA) o aumentar el tamaño de la llave esto generará un par de llaves mucho más seguras.
Cuando el proceso inicie mueve el ratón rápidamente sobre la interfaz de PuTTYgen, esto ayuda a que la generación sea más aleatoria.
- Llaves generadas:
Como medida de seguridad se recomienda asignar una contraseña para proteger la llave pública.
- Guardar llave pública y privada: Lo siguiente será guardar las llaves en un lugar seguro, principalmente la privada, ya esta no deberá nunca ser compartida ni estar en un lugar visible para personas no autorizadas, la llave pública será la que subiremos al servidor.
- Configurar llave privada en PuTTY: Para que el servidor permita nuestra conexión por SSH desde el cliente PuTTY es necesario que el cliente tenga configurada la llave privada, ya que está será comparada por el servidor con la llave pública ubicada en el servidor validando si son el conjunto de llaves correctas, si hace match podremos conectarnos de forma segura a nuestro servidor.
Abrimos PuTTY en el panel izquierdo desplegamos SSH y damos clic en Auth, en “Private Key File for authentication” seleccionamos Browse, buscamos nuestra llave privada y la dejamos definida.
- Agregar la llave pública en el servidor:
- Copiamos la llave pública generada con PuTTYgen:
- Nos conectamos al servidor por SSH a través del cliente PuTTY.
- Si la carpeta .ssh no existe, créala junto con el archivo authorized_keys con el siguiente comando:
mkdir ~/.ssh | touch ~/.ssh/authorized_keys
- Asegura el archivo de la llave SSH cambiando los permisos:
chmod 0700 ~/.ssh; chmod 0644 ~/.ssh/authorized_keys
- Abrimos el archive authorized_keys con el editor de texto de Linux nano o vim, pegamos el contenido de la llave pública y guardamos.
- Activando autenticación por llave pública: Luego de lo anterior, debemos editar la configuración del servicio SSH en nuestro servidor, editando el siguiente archivo con nano o vim.
nano /etc/ssh/sshd_config
Eliminamos # de PubkeyAuthentication yes
Guardamos, salimos y reiniciamos el servicio SSH con el siguiente comando:
service ssh restart
- Iniciando sesión SSH con llave pública: cuando tratemos de iniciar sesión aplicando llaves de autenticación se nos solicitará el usuario en este caso “root” y una contraseña que fue la que le indicamos en un paso anterior, esto por seguridad, en el caso que no le asignemos contraseña a las llaves no se nos pedirá la contraseña.
- Desactivando inicio de sesión por contraseña: ya habiendo asegurado nuestra conexión es necesario desactivar la conexión por contraseña, editando en el archivo de configuración del servicio SSH en el servidor.
Comando:
nano /etc/ssh/sshd_config
Buscamos la línea PasswordAuthentication y cambiando su valor de yes a no.
Guardamos, salimos y reiniciamos el servicio SSH con el siguiente comando:
service ssh restart
Espero sea de gran ayuda este tutorial y ayúdame compartiendo.