Cómo crear e instalar claves SSH desde el shell de Linux

Tome en serio la seguridad informática y use las claves SSH para acceder a los inicios de sesión remotos. Son una forma más segura de conectarse que las contraseñas. Le mostramos cómo generar, instalar y usar claves SSH en Linux.

¿Qué está mal con las contraseñas?

Secure Shell (SSH) es el protocolo encriptado que se usa para iniciar sesión en cuentas de usuario en computadoras remotas de Linux o similares a Unix. Normalmente, estas cuentas de usuario se protegen mediante contraseñas. Cuando inicia sesión en una computadora remota, debe proporcionar el nombre de usuario y la contraseña de la cuenta en la que está iniciando sesión.

Las contraseñas son los medios más comunes para garantizar el acceso a los recursos informáticos. A pesar de esto, la seguridad basada en contraseña tiene sus fallas. La gente elige contraseñas débiles, comparte contraseñas, usa la misma contraseña en varios sistemas, etc.

Las claves SSH son mucho más seguras, y una vez que están configuradas, son tan fáciles de usar como las contraseñas.

¿Qué hace que las claves SSH sean seguras?

Las claves SSH son creadas y usadas en pares. Las dos claves están vinculadas y criptográficamente seguras. Una es su clave pública y la otra es su clave privada. Están vinculados a su cuenta de usuario. Si varios usuarios en una sola computadora usan claves SSH, cada uno recibirá su propio par de claves.

Su clave privada está instalada en su carpeta de inicio (generalmente), y la clave pública está instalada en la computadora remota, o computadoras, a las que necesitará acceder.

Su clave privada debe mantenerse segura. Si otros usuarios pueden acceder a él, se encuentra en la misma posición que si hubieran descubierto su contraseña. Una precaución sensata, y altamente recomendada, es que su clave privada esté encriptada en su computadora con una contraseña robusta.

La clave pública se puede compartir libremente sin ningún compromiso para su seguridad. No es posible determinar cuál es la clave privada a partir de un examen de la clave pública. La clave privada puede cifrar mensajes que solo la clave privada puede descifrar.

Cuando realiza una solicitud de conexión, la computadora remota usa su copia de su clave pública para crear un mensaje cifrado. El mensaje contiene un ID de sesión y otros metadatos. Solo la computadora que posee la clave privada (su computadora) puede descifrar este mensaje.

Su computadora accede a su clave privada y descifra el mensaje. Luego envía su propio mensaje cifrado a la computadora remota. Entre otras cosas, este mensaje cifrado contiene el ID de sesión que se recibió desde la computadora remota.

La computadora remota ahora sabe que usted debe ser quien dice que es porque solo su clave privada podría extraer la identificación de la sesión del mensaje que envió a su computadora.

Asegúrese de que pueda acceder a la computadora remota

Asegúrese de que puede conectarse a la computadora remota e iniciar sesión en ella. Esto prueba que su nombre de usuario y contraseña tienen una cuenta válida configurada en la computadora remota y que sus credenciales son correctas.

No intente hacer nada con las claves SSH hasta que haya verificado que puede usar SSH con contraseñas para conectarse a la computadora de destino.

En este ejemplo, una persona con una cuenta de usuario llamada dave se registra en una computadora llamada howtogeek. Se van a conectar a otra computadora llamada Sulaco.

Entran en el siguiente comando:

ssh dave @ sulaco

Se les pide su contraseña, la ingresan y se conectan a Sulaco. Su línea de comandos cambia para confirmar esto.

Esa es toda la confirmación que necesitamos. Entonces, el usuario dave puede desconectarse de Sulaco con el comando de salida:

salida

Reciben el mensaje de desconexión y su línea de comandos vuelve a dave @ howtogeek.

RELACIONADO: Cómo conectarse a un servidor SSH desde Windows, macOS o Linux

Creando un par de claves SSH

Estas instrucciones fueron probadas en las distribuciones de Linux de Ubuntu, Fedora y Manjaro. En todos los casos, el proceso fue idéntico, y no fue necesario instalar ningún software nuevo en ninguna de las máquinas de prueba.

Para generar sus claves SSH, escriba el siguiente comando:

ssh-keygen

Comienza el proceso de generación. Se le preguntará dónde desea guardar sus claves SSH. Presione la tecla Intro para aceptar la ubicación predeterminada. Los permisos en la carpeta lo asegurarán solo para su uso.

Ahora se le pedirá una frase de contraseña. Le recomendamos que ingrese una contraseña aquí. ¡Y recuerda lo que es! Puede presionar Entrar para no tener una frase de contraseña, pero no es una buena idea. Una frase de contraseña compuesta por tres o cuatro palabras no conectadas, unidas entre sí formarán una frase de contraseña muy sólida.

Se le pedirá que ingrese la misma frase de contraseña una vez más para verificar que haya escrito lo que pensó que había escrito.

Las claves SSH se generan y almacenan para usted.

Puede ignorar el “randomart” que se muestra. Algunas computadoras remotas pueden mostrarte su arte al azar cada vez que te conectas. La idea es que reconocerá si el arte al azar cambia, y sospechará de la conexión porque significa que las claves SSH para ese servidor han sido alteradas.

Instalación de la clave pública

Necesitamos instalar su clave pública en Sulaco, la computadora remota, para que sepa que la clave pública le pertenece.

Hacemos esto usando el comando ssh-copy-id. Este comando establece una conexión con la computadora remota como el comando ssh normal, pero en lugar de permitirle iniciar sesión, transfiere la clave SSH pública.

ssh-copy-id dave @ sulaco

Aunque no está iniciando sesión en la computadora remota, aún debe autenticarse con una contraseña. La computadora remota debe identificar a qué cuenta de usuario pertenece la nueva clave SSH.

Tenga en cuenta que la contraseña que debe proporcionar aquí es la contraseña de la cuenta de usuario en la que está iniciando sesión. Esta no es la frase de paso que acaba de crear.

Una vez verificada la contraseña, ssh-copy-id transfiere su clave pública a la computadora remota.

Volverá a la línea de comandos de su computadora. No te quedas conectado a la computadora remota.

Conexión mediante claves SSH

Sigamos la sugerencia e intentemos conectarnos a la computadora remota.

ssh dave @ sulaco

Debido a que el proceso de conexión requerirá acceso a su clave privada, y como salvaguardó sus claves SSH detrás de una frase de contraseña, deberá proporcionar su frase de contraseña para que la conexión pueda continuar.

Ingrese su contraseña y haga clic en el botón Desbloquear.

Una vez que haya ingresado su contraseña en una sesión de terminal, no tendrá que ingresarla nuevamente mientras tenga abierta esa ventana de terminal. Puede conectarse y desconectarse de tantas sesiones remotas como desee, sin ingresar nuevamente su contraseña.

Puede marcar la casilla de verificación de la opción “Desbloquear automáticamente esta clave cada vez que inicie sesión”, pero esto reducirá su seguridad. Si deja su computadora desatendida, cualquiera puede hacer conexiones a las computadoras remotas que tienen su clave pública.

Una vez que ingrese su contraseña, estará conectado a la computadora remota.

Para verificar el proceso una vez más de extremo a extremo, desconéctese con el comando de salida y vuelva a conectarse a la computadora remota desde la misma ventana de terminal.

ssh dave @ sulaco

Se lo conectará a la computadora remota sin la necesidad de una contraseña o frase de contraseña.

Sin contraseñas, pero seguridad mejorada

Los expertos en ciberseguridad hablan de una cosa llamada fricción de seguridad. Ese es el dolor menor que debe soportar para obtener la seguridad adicional. Por lo general, se requieren algunos pasos adicionales para adoptar un método de trabajo más seguro. Y a la mayoría de la gente no le gusta. En realidad, prefieren una menor seguridad y la falta de fricción. Esa es la naturaleza humana.

Loading...

Con las claves SSH, obtiene una mayor seguridad y un aumento de la comodidad. Eso es definitivamente un ganar-ganar.

Loading...