Conectar por SSH sin contraseña y con llaves SSH es muy sencillo. Existen ocasiones en las que no nos interesa que los usuarios sepan las contraseñas de los equipos, pero que si puedan acceder a ellos por SSH. Para ello, se han creado las llaves SSH (llave pública y privada) que nos facilitarán esta tarea. Imaginemos que tenemos que gestionar muchos equipos remotos, con muchos usuarios y contraseñas ¿verdad que se hace difícil recordar la contraseña de todos ellos? ó ¿verdad que es un rollo tener que meter la contraseña en cada uno de ellos?
Si queréis aprender como configurar un equipo Mikrotik con RouterOS y Windows para generar y configurar las llaves SSH, seguid leyendo...
¿QUÉ SON LAS LLAVES SSH?
Al usar una llave SSH ( una pública y una privada para ser precisos), se puede conectarse fácilmente a un servidor, o a múltiples servidores, sin tener que ingresar una contraseña cada vez Criptografía_asimétrica y Protocolos_desafío-respuesta. Una ventaja inmediata de este método sobre el clásico método de autenticación con contraseña, es que es posible autenticarse sin necesidad de enviar la contraseña por la red, así que alguien espiando la red no podrá interceptar e intentar descifrar la contraseña ya que esta nunca sera enviada. Adicionalmente, el uso de llaves de SSH virtualmente elimina el riesgo de ataques de fuerza bruta al reducir la probabilidad de que un atacante adivine las credenciales correctamente.
Ademas de ofrecer seguridad adicional, autenticación con llaves SSH puede ser mas conveniente que el método tradicional de autenticación con contraseña. Cuando se usa con un programa conocido como Agente SSH, las llaves SSH le permiten conectarse con uno o múltiples servidores sin necesidad de tener que recordar la contraseña de cada sistema.
Llaves SSH también tienen algunas desventajas y puede que no funcionen en todos los ambientes, pero en muchas circunstancias pueden ofrecer bastantes ventajas. Un entendimiento general de como funcionan las llaves SSH le ayudaran a decidir como y cuando usarlas para satisfacer su caso especifico.
1.- REQUERIMIENTOS
Los únicos requerimientos para seguir este tutorial son los siguientes:
- Equipo con RouterOS instalado
- Winbox
- Paquete completo Putty en Windows
- Conectividad entre los equipos a probar
2.- INSTALACIÓN DE PUTTY
Lo primero que necesitamos instalar es el paquete completo de Putty. Para ello instalaremos el paquete MSI (‘Windows Installer’) de nuestra versión de sistema operativo 32/64bits disponible en la Web Oficial https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html. La instalación es muy sencilla, simplemente bajamos el instalador y lo ejecutamos con doble click. Debemos aceptar todos los pasos y hacer click en siguiente->siguiente->siguiente...y listo!
3.- CREACIÓN DEL NUEVO USUARIO EN MIKROTIK
Para crear el usuario, lo haremos utilizando la interfaz gráfica gratuita Winbox disponible aqui: Descargar Winbox. Crearemos un usuario desde el Menú principal->System->Users y de solo lectura a modo de ejemplo llamado rouser (read only user) y lo meteremos en el grupo de solo lectura read y sin contraseña:
Crear usuario de solo lectura
4.- GENERAR LLAVE PÚBLICA Y PRIVADA SSH
Una vez instalado Putty, abriremos el programa PuTTYgen y crearemos nuestras llaves tanto pública como privada. Para ello lo primero que debemos hacer es seleccionar el tipo de llave que queremos SSH-2 RSA y seleccionaremos el número de bits, por ejemplo 2048 o 4096 son "suficientes". Una vez seleccionados ambos campos, haremos click en "Generate key pair":
Generar llave SSH RSA-2
Para generar un poco de entropía a la hora de generar la llave, debemos mover el ratón continuamente en el área marcada en el recuadro verde:
Generando la llave SSH
Una vez que el proceso ha finalizado, exportaremos la llave en formato OpenSSH. Deberemos seleccionar en el menú superior Conversions->Export OpenSSH Key. Ésta será nuestra llave pública y la que coloquemos en nuestro/nuestros equipos Mikrotik:
Exportar llave formato OpenSSH
Existe la posibilidad de poner una contraseña a la llave SSH. Cada vez que la vayamos a usar (hacer login) se nos preguntará por esa contraseña. En este caso, se ha optado por dejar la contraseña en blanco:
Confirmación guardado
Guardamos la llave pública con un nombre identificativo, por ejemplo RemoteSSHReadOnly:
Guardar llave pública
Ahora debemos copiar la llave a nuestro Mikrotik. Es tan fácil como arrastrar nuestra llave, a la ventana Winbox y veremos que el fichero es transferido sin ningún problema:
Copiar llave pública al Mikrotik
Ahora debemos asignar la llave pública a nuestro usuario rouser. Para ello, desde la lista de usuarios en la pestaña SSH Keys, haremos click en Import SSH Key. Seleccionaremos nuestro usuario y la llave pública para dicho usuario:
Importar y asignar llave pública
Ahora debemos guardar en un lugar seguro, nuestra llave privada. Para ello haremos click en Save private key:
Exportar llave privada
Guardamos la llave, por ejemplo con el nombre RemoteSSHReadOnly.prv:
Guardar llave privada
5.- CONFIGURACIÓN DE PUTTY CON LLAVES SSH
Ahora debemos configurar Putty para que use nuestra llave privada para conectar con el Mikrotik. Para ello en la categoría "Session", debemos introducir los datos de nuestro equipo Mikrotik remoto. Introduciremos la IP ó Host Name, el puerto 22 y en Saved Sessions pondremos un nombre para guardar la conexión más adelante:
Datos del Mikrotik
En Connection->Data, y luego en el campo Auto-login username, introduciremos el usuario con el que queremos hacer login. En nuestro caso rouser:
Auto-login
En la sección Auth, en la parte de autenticación deberemos seleccionar nuestra llave privada ssh:
Llave privada SSH
Volvemos a la pantalla principal de Session, y guardaremos el perfil haciendo click en Save:
Guardar perfil
Para conectar con nuestro equipo remoto Mikrotik, debemos hacer click en Open y nos conectaremos con el usuario rouser ( de solo lectura ) a nuestro Mikrotik sin pedirnos contraseña:
Login sin pedir password correcto
ENJOY!