Fatmawati Achmad Zaenuri / Shutterstock.com
Tome la ciberseguridad en serio y use claves SSH para acceder a conexiones remotas. Son una forma más segura de iniciar sesión que las contraseñas. Te mostramos cómo generar, instalar y usar claves SSH en Linux.
¿Qué pasa con las contraseñas?
Secure Shell (SSH) es el protocolo cifrado que se utiliza para iniciar sesión en cuentas de usuario en equipos remotos Linux o Unix. Por lo general, estas cuentas de usuario están protegidas con contraseñas. Cuando inicia sesión en una computadora remota, debe proporcionar el nombre de usuario y la contraseña de la cuenta a la que está iniciando sesión.
Las contraseñas son la forma más común de proteger el acceso a los recursos informáticos. A pesar de esto, la seguridad de las contraseñas tiene sus defectos. Las personas eligen contraseñas débiles, comparten contraseñas, usan la misma contraseña en múltiples sistemas, etc.
Las claves SSH son mucho más seguras y, una vez configuradas, son tan fáciles de usar como las contraseñas.
¿Qué hace que las claves SSH sean seguras?
Las claves SSH se crean y utilizan 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 la misma computadora están usando 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 o computadoras remotas a las que necesitará acceder.
Su clave privada debe guardarse en un lugar seguro. Si otras personas pueden acceder a él, se encuentra en la misma situación que si hubieran descubierto su contraseña. Una precaución razonable y muy recomendada es que su clave privada esté encriptada en su computadora con un contraseña.
La clave pública se puede compartir libremente sin comprometer 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 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. Luego 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, porque solo su clave privada puede extraer el ID de sesión del mensaje que envió a su computadora.
Asegúrese de que puede acceder a la computadora remota
Asegúrese de poder conectarse de forma remota y conectarse a la computadora remota. 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 iniciar sesión en la computadora de destino.
En este ejemplo, alguien con una cuenta de usuario llamada dave
está conectado a una computadora llamada howtogeek
. 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.
Esa es toda la confirmación que necesitamos. Entonces usuario dave
puede desconectarse de Sulaco
con el exit
pedido:
exit
Reciben el mensaje de cierre de sesión y su línea de comando vuelve a dave@howtogeek
.
Crear un par de claves SSH
Estas instrucciones han sido probadas en distribuciones de Linux Ubuntu, Fedora y Manjaro. De cualquier manera, el proceso fue el mismo y no hubo necesidad de instalar nuevo software en ninguna de las máquinas de prueba.
Para generar sus claves SSH, ingrese el siguiente comando:
ssh-keygen
Comienza el proceso 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. Recomendamos encarecidamente que ingrese una frase de contraseña aquí. ¡Y recuerda lo que es! Puede presionar Enter para no tener una contraseña, pero esa no es una buena idea. Una frase de contraseña que consta de tres o cuatro palabras no conectadas encadenadas juntas formará una frase de contraseña muy sólida.
Se le pedirá que ingrese la misma contraseña nuevamente para verificar que escribió lo que pensó que escribió.
Las claves SSH se generan y almacenan para usted.
Puede ignorar el «randomart» que aparece. Algunas computadoras remotas pueden mostrarle su arte aleatorio cada vez que se conecta. La idea es que reconozca si el arte aleatorio cambia y desconfía de la conexión porque significa que se han cambiado las claves SSH para ese servidor.
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
pedido. Este comando establece una conexión a la computadora remota como el ssh
comando, pero en lugar de permitirle iniciar sesión, transfiere la clave pública SSH.
ssh-copy-id dave@sulaco
Incluso si no inicia 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 contraseña que acaba de crear.
Una vez que 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 está conectado a la computadora remota.
Iniciar sesión con claves SSH
Sigamos la sugerencia e intentemos conectarnos a la computadora remota.
ssh dave@sulaco
Dado que el proceso de inicio de sesión requerirá acceso a su clave privada y ha protegido sus claves SSH detrás de una frase de contraseña, deberá proporcionar su frase de contraseña para que la conexión continúe.
Ingrese su contraseña y haga clic en el botón Desbloquear.
Una vez que ingrese su contraseña en una sesión de terminal, no tendrá que ingresarla nuevamente mientras esta ventana de terminal esté abierta. Puede conectarse y desconectarse de tantas sesiones remotas como desee, sin volver a ingresar su contraseña.
Puede marcar la casilla junto a 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 conectarse a computadoras remotas que tengan su clave pública.
Una vez que haya ingresado su contraseña, iniciará sesión en la computadora remota.
Para volver a comprobar el proceso de un extremo a otro, cierre la sesión con el exit
comando y vuelva a conectarse a la computadora remota desde la misma ventana de terminal.
ssh dave@sulaco
Se iniciará sesión en la computadora remota sin necesidad de una contraseña o frase de contraseña.
Sin contraseñas, pero seguridad mejorada
Los expertos en seguridad cibernética hablan de algo llamado fricción de seguridad. Es el dolor menor que debe soportar para obtener seguridad adicional. Suelen ser necesarios uno o dos pasos más para adoptar una forma de trabajo más segura. Y a la mayoría de la gente no le gusta. De hecho, prefieren menos seguridad y sin fricciones. Es la naturaleza humana.
Con las claves SSH, se beneficia de una mayor seguridad y conveniencia. Definitivamente es una situación en la que todos ganan.