Autor Tema: [Howto] Autenticación por clave privada y pública para dropbear (desde Putty)  (Leído 1548 veces)

0 Usuarios y 1 Visitante están viendo este tema.

peperfus

  • Visitante
Voy al grano. Así es como lo hice yo. (Se puede hacer de varias formas, pero esta es la que mejor me funcionó).


Dropbear es el servidor ssh que lleva openwrt.

Para no tener que estar poninedo contraseña cada vez que hacemos login por ssh, lo cual, si tenemos una buena contraseña es un rollo, y si tenemos una mala es inseguro, se puede usar esta opción de autenticación por clave privada y pública, para entrar automáticamente con el putty sin poner contraseña.

Metafóricamente, las claves pública y privada son como una especie de "cerradura" y "llave". El router openwrt llevará una clave pública (cerradura) y nuestro PC con putty, llevará una clave privada (llave que sólo deben tener quienes puedan entrar).

Así es como lo hice, siguiendo un par de tutoriales y solucionando un par de problemillas que me encontré por el camino:

1) Entré por ssh a open.
2) Instalé el programa ssh-keygen con
Código: [Seleccionar]
opkg update && opkg install ssh-keygen ya que no venía por defecto.
3) Generé un par de claves pública y privada (cerradura y llave) con el comando:
Código: [Seleccionar]
sshkeygen -t dsa4) Me copié la clave privada a mi ordenador, usando el WINSCP
5) Borré la clave privada de open, ya que no tiene sentido "dejar la llave al lado de la cerradura", ¿verdad?.
6) Añadí la clave pública al archivo "/etc/dropbear/authorized_keys" así:
Código: [Seleccionar]
cat id_*.pub >> /etc/dropbear/authorized_keys
rm ./id_*.pub
7) Le puse los permisos adecuados para que sólo root pudiera ver y escribir ese archivo:
Código: [Seleccionar]
chmod 600 /etc/dropbear/authorized_keys
Ahora viene la parte de configuración de Putty:
Pero antes...
El putty es incompatible con la llave generada por ssh-keygen, así que hay que importarla para convertirla. Esto lo hace el programa puttygen, dándole a Load, o a Conversion Import key... y automáticamente la convierte. A la llave (clave privada) se le puede poner una contraseña para mayor seguridad; esto ya depende del nivel de paranoia de cada uno. Yo la dejé sin contraseña, porque busco más comodidad que seguridad, pero como ya digo, depende de cada uno. Ahora hay que darle a Save private key y ya la tenemos.


En el putty, cattegory, connection, Data, Auto-login username, poner root
Luego, en Connection, SSH, Auth, A la derecha, Private key file for Authentication, Browse y seleccionamos el archivo llave (la clave privada) que hemos importado antes con el puttygen.
Ponemos los demás parámetros (Ip, ssh, puerto), grabamos la sesión para no tener que volver a configurarlo todo otra vez cada vez que queramos conectar y.... listo.

También se puede generar las claves desde el puttygen, pero a mí luego me dieron problemas cuando las copié a open, por el rollo del carácter de fin de línea de windows, que es distinto al de linux, y me salían los dichosos ^M al final de cada línea de las claves. Por eso decidí hacerlo en open y luego pasarlas e importarlas con el puttygen, que al revés. Y me funcionó a la primera.


« Última modificación: 05-02-2018, 11:48 (Lunes) por peperfus »

Desconectado peperfus

  • *****
  • Mensajes: 142
W A R N I N G
Citar
DISCLAIMER - EXCENCIÓN DE RESPONSABILIDAD
El presente tutorial / manual / howto, instrucciones o texto en general, carece de cualquier garantía y sólo está pensado como uso a modo educativo, de aprendizaje, experimentación, investigación y desarrollo.
Puede contener errores así como ambigüedades o falta de información precisa. En cualquier caso, las sugerencias, comentarios y críticas constructivas serán siempre bienvenidos.
El autor rechaza cualquier responsabilidad por cualquier tipo de daño, ya sea directo o indirecto, accidental o intencionado que la aplicación del siguiente texto pueda ocasionar.
Su uso está totalmente desaconsejado en entornos de producción a no ser, bajo la estricta supervisión de un profesional debidamente cualificado y bajo su única y exclusiva responsabilidad.
La aplicación del presente texto en cualquier sistema, implica la total aceptación de estas condiciones.
Peperfus.

Actualización.
Mejor usar este método. El anterior no me va y este es el que me va ahora:

1) Descargar puttygen
2) Generar nuevo par de claves. NO USAR SAVE PUBLIC KEY para el authorized_keys. NO VA.  :P
3) Seleccionar todo lo que salga en el recuadro "Public key for parsing into OpenSSH authorized_keys file" (clic derecho y seleccionar todo), copiarlo al portapapeles.
4) En el router open: nano /etc/dropbear/authorized_keys y clic derecho (pegar la clave pública, que será una linea). Guardar el archivo.
5) Ponerle permisos 640.
6) Ahora sí, la private key sí la podemos guardar con Save en el puttygen. La guardamos donde sea y con el nombre que queramos. Yo la suelo llamar: "llave"

Nota: el paso 4 también se puede hacer por luci, entrando en System / Admninistration. Abajo del todo en SSH-keys, pegar la clave pública.


Y  luego, seguir las instrucciones en putty:
1) En Connection / Data, Auto-login username poner el que corresponda (root normalmente)
2) Connection / SSH / Auth, especificar con Browse el archivo llave privada que generamos antes desde el putty gen.
3) Session: Poner la IP del router, connection type SSH, darle un nombre a la sesión (saved sessions) y SAVE para  que se quede guardada la configuración.
4) Click en Open y debería funcionar.

 :D

NOTA:
Para hacer passwordless login desde openwrt a openwrt, consultar este tutorial:
https://foro.seguridadwireless.net/openwrt/como-hacer-password-less-login-desde-openwrt-a-openwrt/
« Última modificación: 31-05-2019, 18:36 (Viernes) por peperfus »