Cómo usar ssh-keygen para generar una clave SSH

How Use Ssh Keygen Generate An Ssh Key



SSH o Secure Shell es un protocolo encriptado útil para asegurar las conexiones entre el cliente y el servidor para diferentes tareas administrativas. Es compatible con varios tipos de sistemas de autenticación. La autenticación basada en clave pública y la autenticación basada en contraseña se utilizan principalmente. La autenticación basada en claves es más segura que la autenticación basada en contraseñas. Los pares de claves de autenticación para SSH son generados por la herramienta ssh-keygen que se pueden usar para diferentes propósitos como autenticar el host, automatizar el inicio de sesión, etc. En este tutorial se muestra cómo se puede usar esta herramienta en Ubuntu.

Sintaxis:

La sintaxis de este comando se da a continuación. Admite muchas opciones para generar pares de claves de autenticación que se describen más adelante.







ssh-keygen [-q] [-b bits] [-Cómo es eso] [-f archivo_clave_salida] [-m formato]

[-t dsa|ecdsa|ecdsa-sk|ed25519|ed25519-sk|rsa]

[-N nueva_contraseña] [-O opción] [-w proveedor]

Diferentes opciones de ssh-keygen:

Los propósitos de usar diferentes tipos de opciones ssh-keygen se explican a continuación.



Opción Objetivo
-A Genera las claves de host con la ruta del archivo de clave predeterminada, la frase de contraseña vacía, los bits predeterminados para el tipo de clave y el comentario.
-b bits Se utiliza para definir el número de bits de la clave que se creará.
-Cómo es eso Se utiliza para definir el nuevo comentario.
-c Se utiliza para solicitar el cambio de comentario de los archivos de clave pública y privada.
-E fingerprint_hash Se utiliza para definir el algoritmo hash que se utilizará para mostrar las huellas digitales.
-Y Se utiliza para leer el archivo de clave pública o privada e imprimir en la salida estándar.
-F nombre de host | [nombre de host]: puerto Se utiliza para buscar el nombre de host en particular con el número de puerto opcional en el archivo known_hosts.
-f nombre de archivo Se utiliza para definir el nombre de archivo del archivo de claves.
-H Se utiliza para aplicar un hash a un archivo known_hosts. Reemplazará todos los nombres de host y direcciones con las representaciones hash dentro del archivo especificado. El contenido original se moverá a un archivo con el sufijo .old.
-I Se utiliza para leer un archivo de clave privada (o pública) sin cifrar.
-LOS Se utiliza para imprimir el contenido de uno o más certificados.
-los Se utiliza para mostrar la huella digital de un archivo de clave pública específico.
-N nueva_contraseña Se utiliza para proporcionar la nueva frase de contraseña.
-P frase de contraseña Se utiliza para proporcionar la antigua frase de contraseña.
-t dsa | ecdsa | ecdsa-sk | ed25519 | ed25519-sk | rsa Se utiliza para definir el tipo de clave que se creará.

Cree claves usando ssh-keygen:

Puede crear pares de claves SSH ejecutando ssh-keygen con opciones o sin ninguna opción. En esta parte de este tutorial se muestran diferentes formas de crear los pares de claves SSH. Debe iniciar sesión en la máquina del servidor donde OpenSSH se ha instalado para crear las claves



Genere los pares de claves sin ninguna opción:

El siguiente comando creará pares de claves sin usar ninguna opción.





$ssh-keygen

Después de ejecutar el comando anterior, puede proporcionar el nombre de archivo donde se guardará la clave o presionar la tecla Enter para guardar el nombre de archivo predeterminado. Aquí, se ha presionado la tecla Enter. A continuación, puede presionar la tecla Intro nuevamente para establecer la contraseña vacía o establecer la contraseña.



Genere los pares de claves con una sola opción:

El siguiente comando generará los pares de claves del tipo rsa mencionado en el comando con la opción -t.

$ssh-keygen -trsa

Al igual que el comando anterior, puede proporcionar el nombre de archivo o utilizar el nombre de archivo predeterminado para almacenar los pares de claves y establecer la contraseña o la contraseña vacía para la conexión SSH.

Genere los pares de claves con múltiples opciones:

Ejecute el siguiente comando para generar los pares de claves de tipo rsa con 2000 bits y el valor de comentario,[correo electrónico protegido].

$ssh-keygen -trsa-b 2000 -C ' [correo electrónico protegido] '

Al igual que el comando anterior, puede proporcionar el nombre de archivo o utilizar el nombre de archivo predeterminado para almacenar los pares de claves y establecer la contraseña o la contraseña vacía para la conexión SSH. Si generó los archivos clave antes de ejecutar el comando anterior, le pedirá que sobrescriba el archivo clave o no. Si escribe 'y', sobrescribirá el archivo generado anteriormente con las nuevas claves.

Copie la clave pública al servidor:

Ejecute el siguiente comando desde la máquina del servidor para agregar la clave pública a la máquina del servidor. El comando copiará la clave al servidor y la configurará para agregar la clave al archivo autorizado_keys para acceder al servidor.

$ssh-copy-id-I~/.ssh/id_rsa fahmida@fahmida-VirtualBox

El siguiente resultado aparecerá si la clave pública no se agregó antes a la máquina del servidor.

Modifique el archivo de configuración del servidor:

Debe habilitar algunas opciones en el archivo de configuración de la máquina del servidor si desea configurar la autenticación basada en contraseña y permitir el inicio de sesión del usuario raíz del servidor. La ruta del archivo de configuración SSH del servidor es / etc / ssh / sshd_config. Abra el archivo en cualquier editor de texto. Ejecute el siguiente comando para editar el archivo en nano editor.

$sudo nano /etc/ssh/sshd_config

Agregue o modifique el archivo con las siguientes líneas para habilitar la autenticación basada en contraseña y establecer el permiso para el inicio de sesión del usuario root.

Autenticación de contraseña

PermitRootIniciar sesión

Guarde y cierre el archivo. Ejecute el siguiente comando para reiniciar el servicio SSH.

$sudoreiniciar systemctlssh

Inicie sesión desde el cliente SSH:

Inicie sesión en la máquina cliente desde donde desea conectarse con el servidor para verificar si la conexión SSH está funcionando. Abra la terminal y ejecute el siguiente comando para agregar la identidad de la máquina del servidor.

$ssh-add

Ejecute el siguiente comando ssh para conectarse con la máquina servidor desde la máquina cliente. La autenticación de contraseña y el inicio de sesión de root se habilitaron en el archivo de configuración SSH del servidor en la parte anterior de este tutorial. Por lo tanto, el usuario debe proporcionar la contraseña raíz válida de la máquina del servidor para establecer una conexión SSH con éxito.

$ssh <ahref='mailto: [correo electrónico protegido]'>fahmida@10.0.2.15

El siguiente resultado similar aparecerá después de establecer una conexión SSH al servidor desde el cliente.

Conclusión:

Los usos de ssh-keygen para generar pares de claves SSH de diferentes formas se han explicado en este tutorial. Espero que el usuario de Ubuntu genere las claves SSH usando ssh-keygen para establecer una conexión SSH después de leer este tutorial.