Underc0de

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: banderas20 en Julio 21, 2020, 03:13:16 PM

Título: [SOLUCIONADO] Claves SSH en Linux
Publicado por: banderas20 en Julio 21, 2020, 03:13:16 PM
Hola,

tengo unas dudas sobre el funcionamiento de las claves SSH.

Tengo un servidor Debian y he ejecutado el comando ssh-keygen. Éste me genera dos ficheros en el directorio ~/.ssh

id_rsa
id_rsa.pub

Con esto entiendo que he generado claves privada y pública de usuario para autenticarme contra ese servidor como ese usuario en particular. Después he reiniciado el servicio SSH.

He copiado el contenido de id_rsa en un fichero de texto plano en Windows y lo he adjuntado a un cliente SSH. Al intentar conectar con el servidor, éste me da el mensaje:

"Server refused our key"

No sé qué hago mal. ¿Alguna ayuda?

Gracias!

PD: luego querré generar pares de claves para autenticar el servidor y verificar que me estoy conectando al servidor correcto, pero eso supongo que va por otra vía.
Título: Re:Claves SSH en Linux
Publicado por: animanegra en Julio 21, 2020, 06:34:11 PM
Las claves publicas que autorizas van en el archivo authorized_keys dentro de la carpeta .ssh del usuario.
Por cuestiones de seguridad el proceso es:
1 crear el par de llaves en el ordemador cliente
2 hacer un ssh al ordenador remoto
3 añadir el contenido de la clave publica id_rsa.pub en tu caso, al archivo .ssh/authorized_keys
4 verificar que el archivo authorized keys tiene permisos 600

La clave privada no deberia tocar terreno de servidor para que no existan copias fuera de control. Y en cuanto se detecte duplicidad eliminar la piblica correspondiente del authorized_keys.
Distinto cliente, distinta clave.
Tambien deberias deshabilitar la opcion de entrar por ssh mediante password

Un saludo
Título: Re:Claves SSH en Linux
Publicado por: banderas20 en Julio 22, 2020, 03:01:42 AM
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Las claves publicas que autorizas van en el archivo authorized_keys dentro de la carpeta .ssh del usuario.
Por cuestiones de seguridad el proceso es:
1 crear el par de llaves en el ordemador cliente
2 hacer un ssh al ordenador remoto
3 añadir el contenido de la clave publica id_rsa.pub en tu caso, al archivo .ssh/authorized_keys
4 verificar que el archivo authorized keys tiene permisos 600

La clave privada no deberia tocar terreno de servidor para que no existan copias fuera de control. Y en cuanto se detecte duplicidad eliminar la piblica correspondiente del authorized_keys.
Distinto cliente, distinta clave.
Tambien deberias deshabilitar la opcion de entrar por ssh mediante password

Un saludo

Hola!

Las claves ya están en el directorio authorized_keys con permisos 600  :)

Lo que he hecho diferente ha sido:
1. He creado el par de llaves en el ordenador servidor y me he traido la privada al cliente. Debería funcionar, ¿no?

No entiendo lo de distinto cliente, distinta clave. ¿RSA no es un estándar? Si no, dependiendo del cliente que use voy a tener varias claves diferentes. No entiendo el por qué...

Muchas gracias por contestar!
Título: Re:Claves SSH en Linux
Publicado por: banderas20 en Julio 22, 2020, 09:14:11 AM

EDITO: Ya lo he resuelto. authorized_keys lo tenía como un directorio, y ha de ser un fichero. Ya funciona. Gracias a todos!
Título: Re:Claves SSH en Linux
Publicado por: animanegra en Julio 22, 2020, 11:56:01 AM
Me alegra que al final funcionase.

No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
No entiendo lo de distinto cliente, distinta clave. ¿RSA no es un estándar? Si no, dependiendo del cliente que use voy a tener varias claves diferentes. No entiendo el por qué...

Si alguien se mete en un ordenador desde el que accedes a tu servidor podría entrar en el servidor. Si por cada cliente tienes una clave privada distinta podrías inhabilitar la clave y desde el resto podría seguir usándo la suya sin parar su actividad. Imaginate que tienes procesos automáticos o similares. Por este tipo de situaciones el utilizar distintas claves privadas para los distintos clientes desde donde accedas a tu servidor.