GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo utilizar la autenticación de clave pública con SSH

Introducción

Autenticación de clave pública es un método de registro seguro que utiliza SSH. En lugar de una contraseña, el procedimiento utiliza un par de claves criptográficas para la validación. Si bien el uso de una contraseña segura ayuda a prevenir ataques de fuerza bruta, la autenticación de clave pública brinda solidez criptográfica e inicios de sesión automatizados sin contraseña.

Esta guía brinda instrucciones paso a paso sobre cómo implementar la autenticación de clave pública desde cero.

Requisitos previos

  • Acceso a terminal/línea de comando con privilegios de administrador.
  • SSH habilitado. Siga nuestras guías para activar SSH en Linux:Ubuntu 18.04, Debian 9 o 10.
  • Un servidor local y remoto.

Uso de la clave SSH para la autenticación

La autenticación de clave pública SSH consta de cuatro pasos:

1. Genere una clave privada y pública, conocida como par de claves . La clave privada permanece en la máquina local.

2. Agregue la clave pública correspondiente al servidor.

3. El servidor almacena y marca la clave pública como aprobada.

4. El servidor permite el acceso a cualquier persona que acredite la titularidad de la correspondiente clave privada.

El modelo asume que la clave privada está protegida. Agregar una frase de contraseña para cifrar la clave privada agrega una capa de seguridad lo suficientemente buena para la mayoría de los casos basados ​​en el usuario. Para fines de automatización, se aplican el software y las prácticas de administración de claves, ya que, de lo contrario, la clave privada permanece desprotegida.

Generación de un par de claves SSH

Genere el par de claves SSH en el servidor local mediante OpenSSH. Las instrucciones básicas para Linux, macOS y Windows se describen a continuación.

Linux y macOS

1. Abra la terminal (CTRL +ALT +T ).

2. Verifique las claves existentes con:

ls -l ~/.ssh/id*

Si ya hay claves, la salida muestra el contenido del directorio:

La generación de claves nuevas sobrescribe las actuales de forma predeterminada. Sin embargo, indicar un nuevo nombre para las claves las guarda en archivos diferentes.

Si no hay claves existentes, la salida indica que la carpeta no existe:

3. Cree el directorio usando el comando mkdir para almacenar el nuevo par de claves:

mkdir ~/.ssh

4. Cambia los permisos a 700:

chmod 700 ~/.ssh

5. El siguiente comando inicia el generador de claves:

ssh-keygen

La salida imprime un mensaje que indica que el comando se ejecutó correctamente. A continuación, el programa pregunta dónde guardar el archivo:

El directorio y archivo predeterminados para el almacenamiento de claves es /home//.ssh/id_rsa . Si tiene claves existentes que desea conservar, ingrese un nuevo nombre de archivo. De lo contrario, presione Entrar para guardar en la ubicación predeterminada. Si ya existe alguna clave en esta ubicación, el programa sobrescribe los datos.

6. Finalmente, ingrese una frase de contraseña para proteger la clave. Pulsa Intro y confirme la frase de contraseña una vez más cuando se le solicite. Se requiere la contraseña cada vez que use la clave para la autenticación.

7. Por último, el programa imprime información sobre dónde se almacenan las claves. Además, también se imprime una representación digital y gráfica en la consola.

8. Confirme que las claves están en el directorio comprobando el contenido:

 ls -l ~/.ssh/

El directorio ahora contiene dos archivos:

  • id_rsa es la clave privada.
  • id_rsa.pub es la clave pública.

Ventanas

1. Use el cuadro de búsqueda de Windows para encontrar cmd y abra la ventana del símbolo del sistema.

2. En el indicador, escriba:

ssh-keygen

El comando inicia el programa para generar el par de claves.

3. Si configura una ubicación específica para las claves, escriba la ruta ahora. De lo contrario, presione Entrar para guardar las claves en la ruta predeterminada.

Si existen claves en esta ubicación, la salida solicita confirmar la sobrescritura. Escribe Y para confirmar y presione Enter para continuar con la configuración.

4. Introduzca la frase de contraseña para cifrar la clave privada. Vuelva a ingresar la misma frase de contraseña y presione Enter para terminar de generar el par de claves.

Configuración de uno o varios usuarios SSH/SFTP para su clave

Después de generar un par de claves, el siguiente paso es configurar la máquina del servidor para los usuarios de SSH y SFTP para la clave.

1. En la máquina del servidor, compruebe si ~/.ssh la carpeta existe:

ls -l ~/.ssh/

Si el directorio no existe, cree la carpeta:

mkdir ~/.ssh

A continuación, cambie los permisos con:

chmod 700 ~/.ssh

2. Cree un archivo llamado authorized_keys en el ~/.ssh directorio:

touch authorized_keys

Cambiar los permisos:

chmod 600 ~/.ssh/authorized_keys

3. A continuación, abra authorized_keys archivo utilizando un editor de texto. Copie el contenido de la clave pública en authorized_keys expediente. Para múltiples usuarios y claves, copie cada nueva clave en una nueva línea. Guarde el archivo y cierre.

En Linux, use este comando para copiar la clave automáticamente:

ssh-copy-id <username>@<host>

El resultado muestra la cantidad de claves copiadas automáticamente en el servidor junto con más instrucciones.

Para transferir archivos a través de SSH, existen varias soluciones:

  • Utilice SSHFS para Linux, macOS o Windows
  • Utilice RSync como alternativa para Linux.

Iniciar sesión

Después de generar y copiar las claves, inicie sesión en su servidor desde la máquina local usando el siguiente comando:

ssh <username>@<host>

El comando muestra un mensaje para ingresar la contraseña de la clave privada:

Por último, ingrese la contraseña para desbloquear la llave:

Una vez verificado, el comando inicia sesión en el servidor a través de SSH.

¿Por qué debería utilizar la autenticación de clave pública con SSH?

La autenticación de clave pública es una forma más segura y recomendada de conectarse con SSH en lugar de un inicio de sesión con contraseña normal.

Algunos beneficios son:

  • El par de claves SSH es más difícil de piratear. Dado que la mayoría de las claves SSH tienen al menos 1024 bits de longitud, lo que equivale a una contraseña de 12 caracteres, la conexión es segura. Para mejorar aún más la seguridad, aumente el número de bits al generar las claves.
  • El contenido de las claves se genera mediante un algoritmo informático, lo que las hace más difíciles de predecir.
  • Solo tiene acceso la máquina donde reside la clave privada.
  • La autenticación de clave pública nunca muestra el contenido de la clave privada al servidor. En caso de compromiso del servidor, la máquina local permanece segura.
  • Una contraseña agregada a la clave privada agrega autenticación de múltiples factores.

Ubuntu
  1. Cómo configurar claves SSH

  2. Ssh:¿sigue recibiendo una solicitud de contraseña con Ssh con autenticación de clave pública?

  3. ¿Cómo usar Ssh-copy-id con túnel Ssh de múltiples saltos?

  4. ¿Cómo recuperar la clave pública de una clave privada Ssh?

  5. Cómo configurar claves SSH en Ubuntu 16.04

¿Cómo configurar claves SSH – SO Windows?

Cómo configurar la autenticación SSH sin contraseña en Linux

Cómo usar una clave SSH con usuarios no root

Cómo usar la autenticación de dos factores con Ubuntu

¿Cómo configurar la autenticación basada en clave Ssh para Github usando el archivo ~/.ssh/config?

Cómo agregar una clave pública SSH al servidor