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

Contenidos

Laptop Linux que muestra un indicador de shell

Tome en serio la ciberseguridad y utilice claves SSH para ingresar a inicios de sesión remotos. Son una forma más segura de conectarse que las contraseñas. Le mostramos cómo generar, instalar y utilizar claves SSH en Linux.

¿Qué hay de malo con las contraseñas?

Secure Shell (SSH) es el protocolo encriptado que se utiliza para iniciar sesión en cuentas de usuario en computadoras remotas Linux o similares a Unix. Regularmente, estas cuentas de usuario están protegidas a través de 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 el medio más común de garantizar el acceso a los recursos informáticos. A pesar de ello, la seguridad basada en contraseñas tiene sus defectos. Las personas eligen contraseñas débiles, comparten contraseñas, usan la misma contraseña en varios sistemas, etc.

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

¿Qué hace que las claves SSH sean seguras?

Las claves SSH se crean y usan en pares. Las dos claves están vinculadas y son 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 (de forma general) y la clave pública está instalada en la computadora remota (o computadoras) a las que necesitará ingresar.

Su clave privada debe mantenerse a salvo. Si otros pueden ingresar a él, se encuentra en la misma posición que si hubieran descubierto su contraseña. Una precaución sensata, y muy recomendable, es que su clave privada esté encriptada en su computadora con un robusto frase de contraseña.

La clave pública se puede compartir libremente sin comprometer su seguridad. No es factible 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 utiliza su copia de su clave pública para crear un mensaje encriptado. El mensaje contiene un ID de sesión y otros metadatos. Solo la computadora en posesión de la clave privada, su computadora, puede descifrar este mensaje.

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

La computadora remota ahora sabe que usted debe ser quien dice ser debido a que solo su clave privada podría extraer el ID de sesión del mensaje que envió a su computadora.

Asegúrese de que puede ingresar a la computadora remota

Asegúrese de poder conectarse e iniciar sesión de forma remota en la computadora remota. Esto prueba que su nombre de usuario y contraseña disponen 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 utilizar SSH con contraseñas para conectarse a la computadora de destino.

En este ejemplo, una persona con una cuenta de usuario llamada dave está conectado a una computadora llamada systempeaker . Se conectarán a otra computadora llamada Sulaco.

Ingresan el siguiente comando:

ssh dave@sulaco

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

usuario dave conectado a sulaco usando ssh y una contraseña

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

exit

usuario dave desconectado de sulaco

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

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

Creación de un par de claves SSH

Estas instrucciones se probaron en distribuciones de Linux Ubuntu, Fedora y Manjaro. En todos los casos, el procedimiento fue idéntico y no hubo necesidad de 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 procedimiento de generación. Se le preguntará dónde desea que se almacenen sus claves SSH. Presione la tecla Enter para aceptar la ubicación predeterminada. Los permisos de la carpeta la protegerán solo para su uso.

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

Se le pedirá que ingrese la misma contraseña una vez más para verificar que ha 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 mostrarle su arte aleatorio cada vez que se conecta. La idea es que reconozca si el arte aleatorio cambia y sospeche de la conexión debido a que 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 ssh-copy-id mando. Este comando establece una conexión a la computadora remota como la normal. ssh comando, pero en lugar de permitirle iniciar sesión, transfiere la clave SSH pública.

ssh-copy-id dave@sulaco

ssh-copy-id dave @ sulaco

Aún cuando 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. Este es no la frase de contraseña que acaba de crear.

Cuando se haya verificado la contraseña, ssh-copy-id transfiere su clave pública a la computadora remota.

Volverá al símbolo del sistema de su computadora. No queda conectado a la computadora remota.

Conexión a través de claves SSH

Sigamos la sugerencia e intentemos conectarnos a la computadora remota.

ssh dave@sulaco

Debido a que el procedimiento de conexión requerirá acceso a su clave privada, y debido a que protegió 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.

cuadro de diálogo de solicitud de frase de contraseña

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

Una vez que haya ingresado su frase de contraseña en una sesión de terminal, no tendrá que ingresarla nuevamente mientras tenga esa ventana de terminal abierta. Puede conectarse y desconectarse de tantas sesiones remotas como desee, sin volver a ingresar 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 reducirá su seguridad. Si deja su computadora desatendida, cualquiera puede hacer conexiones a las computadoras remotas que disponen su clave pública.

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

Para verificar el procedimiento una vez más de un extremo a otro, desconecte con el exit comando y vuelva a conectarse a la computadora remota desde la misma ventana de terminal.

ssh dave@sulaco

Se le conectará a la computadora remota sin necesitar de una contraseña o frase de contraseña.

Sin contraseñas, pero seguridad mejorada

Los expertos en ciberseguridad hablan de algo llamado fricción de seguridad. Ese es el menor dolor que debe soportar para obtener la ganancia de 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.

Con las claves SSH, obtiene una mayor seguridad y una mayor comodidad. Definitivamente es un beneficio mutuo.

setTimeout(function(){
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version=’2.0′;
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s) } (window, document,’script’,
‘https://connect.facebook.net/en_US/fbevents.js’);
fbq(‘init’, ‘335401813750447’);
fbq(‘track’, ‘PageView’);
},3000);

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.