Cómo agregar claves SSH en Ubuntu 20.04

Cómo agregar claves SSH en Ubuntu 20.04

Configure un inicio de sesión seguro sin contraseña en su servidor Ubuntu remoto usando claves SSH

SSH es un protocolo de red cliente-servidor seguro que ayuda a una computadora cliente a conectarse y comunicarse con un servidor remoto. La conexión SSH garantiza que los comandos que se escriben en el terminal se envíen al servidor remoto a través de un canal cifrado.

Hay dos tipos de mecanismos de autenticación que se utilizan para conectarse al servidor remoto, la autenticación basada en contraseña (propensa a ataques de fuerza bruta) y la autenticación basada en claves SSH (que es muy segura).

En la autenticación basada en claves SSH, se genera un par de claves en el equipo cliente, denominado clave pública y clave privada. Una copia de esta clave pública está disponible en el servidor remoto. Cuando un cliente envía una solicitud de conexión al servidor, el servidor genera una cadena aleatoria y la cifra con la clave pública. Esta cadena solo se puede descifrar utilizando la clave privada disponible en el equipo cliente. Este método garantiza que solo los clientes que contengan la clave privada puedan acceder al servidor.

En esta guía, veremos cómo configurar las claves SSH en el servidor Ubuntu 20.04 LTS.

Vea si tiene alguna clave SSH existente en su computadora

Para comprobar si ya existe un par de claves SSH en su computadora, escriba este comando en su terminal.

ls -l ~/.ssh/id_*.pub

Si el comando anterior devuelve no such file or directoryo no matches found, significa que el par de claves SSH no existe.

Si tiene un par de claves SSH existente, puede usar el mismo par de claves para acceder a dos servidores remotos, o también puede crear un par de claves diferente con un nombre diferente. Pasemos al siguiente paso y veamos cómo generar claves SSH para ambos casos.

Creación de claves SSH en una computadora cliente

Para generar un nuevo par de claves SSH en su computadora, escriba el comando como se muestra a continuación.

ssh-keygen

Por defecto, las claves SSH son de 2048 bits. Para mayor seguridad, si desea generar claves SSH con bits más altos, utilice el siguiente comando.

ssh-keygen -b 4096

Si el comando se ejecuta correctamente, aparecerá el siguiente mensaje en su pantalla.

generando un par de claves rsa pública / privada.
Ingrese el archivo en el que guardar la clave (/home/harshit/.ssh/id_rsa):

Ahora, si no tiene ningún par de claves SSH existente en su computadora, simplemente presione Enter, pero si tiene una clave SSH existente, guarde la clave con un nombre de archivo diferente como se muestra a continuación.

Ingrese el archivo en el que guardar la clave (/home/your_name/.ssh/id_rsa): /home/your_name/.ssh/id_rsa_xxx

Reemplace xxxal final del nombre del archivo con un nombre apropiado, como se muestra a continuación y presione Enter.

Ingrese el archivo en el que guardar la clave (/home/your_name/.ssh/id_rsa): /home/your_name/.ssh/id_rsa_client_1

El siguiente mensaje le pedirá que ingrese una frase de contraseña de una longitud arbitraria, garantizará la seguridad de dos niveles en su dispositivo. 

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

Al ingresar esta frase de contraseña, se asegurará de que, incluso si una persona tiene acceso a su clave privada, no podrá acceder a su servidor remoto sin esta frase de contraseña.

Una vez que se completa todo el proceso, aparece el siguiente mensaje en su pantalla.

Cómo agregar claves SSH en Ubuntu 20.04

Las claves SSH se han generado en su sistema. Ahora es el momento de copiar la clave pública en el servidor remoto.

Copiar la clave pública al servidor Ubuntu remoto

El método más fácil y rápido para copiar la clave pública al servidor remoto es mediante la ssh-copy-idutilidad. Pero si esta utilidad no está disponible en su máquina por algún motivo, también puede utilizar otros métodos proporcionados en esta sección.

Usando la utilidad ssh-copy-id

La ssh-copy-idutilidad está disponible de forma predeterminada en su máquina Ubuntu, que copia la clave pública de su dispositivo al directorio apropiado de su máquina Ubuntu remota.

Para copiar la clave ssh pública, simplemente escriba el comando en su terminal, como se muestra a continuación.

ssh-copy-id [email protected]

Reemplace usernamey hostnameen el comando anterior con el nombre de usuario y el nombre de host de su servidor.

El siguiente mensaje aparecerá en su terminal si se está conectando a su host por primera vez, escriba yesy presione Enter.

No se puede establecer la autenticidad del host '172.105.XX.XX (172.105.XX.XX)'.
La huella digital de la clave ECDSA es xx: xx: xx: xx: 77: fe: 73: xx: xx: 55: 00: ad: d6: xx: xx: xx.
¿Está seguro de que desea continuar conectándose (sí / no)? 

Ahora la ssh-copy-idutilidad buscará el archivo con el nombre id_rsa.pubque contiene la clave SSH pública. Una vez que se complete el proceso de escaneo, se le pedirá que ingrese la contraseña de su servidor remoto, como se muestra a continuación. Escriba la contraseña y presione Enter.

/ usr / bin / ssh-copy-id: INFO: intentando iniciar sesión con las nuevas claves, para filtrar las que ya están instaladas
/ usr / bin / ssh-copy-id: INFO: quedan 1 clave por instalar; si se le solicita ahora, debe instalar las nuevas claves
Contraseña de [email protected] :

Una vez que se agrega la clave, el siguiente mensaje aparecerá en su terminal como salida.

Número de llaves agregadas: 1
Ahora intente iniciar sesión en la máquina, con: "ssh ' [email protected] '" y verifique que solo se hayan agregado las claves que deseaba.

En caso de que tenga varias claves SSH en su computadora cliente, para copiar la clave pública apropiada a su computadora remota, escriba el comando en el patrón que se muestra a continuación.

ssh-copy-id -i id_rsa_xxx.pub [email protected]

💡 Sugerencia

No olvide poner .pub al final del nombre del archivo mientras escribe en la terminal.

Copia de la clave pública mediante el método de tubería

Escriba el siguiente comando en la terminal si la ssh-copy-idutilidad no está disponible. Este comando puede parecer un poco más largo, pero funciona correctamente.

cat ~/.ssh/id_rsa.pub | ssh [email protected]_ip_address "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"

Reemplace remote_usernamey server_ip_addresscon su nombre de usuario y dirección IP.

Si tiene varias claves SSH disponibles en su computadora, reemplácelas id_rsa.pubcon el archivo de clave SSH pública de su elección. Por ejemplo id_rsa_client_1.pub,.

Escriba la contraseña del usuario remoto cuando se le solicite y presione Enter.

[email protected]'s password:

Una vez que escriba la contraseña, el id_rsa.pubarchivo se copiará al authorized_keysarchivo del servidor remoto.

Copiar manualmente la clave pública

Utilice este método cuando no tenga acceso a su sistema remoto a través de la autenticación de contraseña.

Abra el id_rsa.pubarchivo usando el catcomando en la terminal. También puede abrirlo desde un editor de texto, el propósito es simplemente copiar el contenido del archivo.

cat ~/.ssh/id_rsa.pub

El contenido del archivo se verá como se muestra a continuación.

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQComjFtuHvHQ67uf3RXg2wgK4EtxBvBvLCtlc4chG + nJ1cbuJjJ6G8az4xsRN1Q7hrV4dYR81Tk3gRApiMdGcMvInU3Vb7Wq3nh9GS4xnLRH1wvb149wogum2MycIES69Xh0cib + VvJyZ + dGO8zRNT64 + SvfiecRV0llnBGWDRqrIGtMHJkKz7VDKuSyzDit / Ck1NFXxC6Plw3cEMOhWHycm8bnSHSoVpr95ySxxnokX4 / 9iAlvOovxTpMpmDaDvuHKgHxcsOv9Q4sz // 6HY / 65 + qqmiuLyuIQXjDiiYTjHTx + VNi6S0iMLoN6XgDLp0MfG6kLvZ0Z + csqdvIDQfMuH [email protected] _PC

Ahora, inicie sesión en su servidor remoto y pegue el contenido copiado usando el comando que se muestra a continuación. Reemplace el above_stringcon el contenido copiado.

echo above_string >> ~/.ssh/authorized_keys

Configuración de varias claves SSH (opcional)

Este paso es para personas que tienen varias claves SSH configuradas en su computadora cliente. Omita esta sección si solo tiene una configuración de clave SSH.

Para administrar múltiples claves SSH, ahora crearemos un configarchivo dentro del .sshdirectorio usando el comando que se muestra a continuación.

cd ~/.ssh
vim config

Escriba ipara ingresar al modo de comando y escriba los detalles de varios hosts, como se muestra en el siguiente ejemplo:

Host remote-ubuntu-server
HostName 172.105.XX.XX
User root
IdentityFile ~/.ssh/id_rsa_client_1

Host remote-ubuntu-server
HostName 172.106.XX.XX
User root
IdentityFile ~/.ssh/id_rsa_client_2

Del mismo modo, escriba los detalles de otros servidores remotos y sus claves. Una vez finalizado el proceso, presione Escy :wqpara guardar y salir.

Ahora, los procesos posteriores son los mismos para tener una o varias claves SSH en la computadora cliente.

Inicie sesión en su servidor remoto usando claves SSH

Una vez que se complete el proceso de copia de su clave pública, inicie sesión en su servidor remoto escribiendo el comando como se muestra a continuación.

ssh [email protected]_ip_address

Si proporcionó la frase de contraseña mientras generaba el par de claves, se le pedirá que la ingrese. Se abrirá una nueva sesión después de que se complete el proceso de autenticación.

Ahora ha configurado correctamente la autenticación basada en claves SSH en su servidor remoto. Pero la autenticación basada en contraseña todavía está activa en su servidor, esto significa que su servidor más remoto todavía es propenso a ataques de fuerza bruta.

Entonces, ahora deshabilitaremos el mecanismo de inicio de sesión basado en contraseña por completo desde nuestro servidor remoto.

Deshabilitar el mecanismo de inicio de sesión basado en contraseña

Antes de realizar cualquier cambio, asegúrese de que el usuario raíz o cualquier usuario habilitado para sudo para su cuenta remota tenga acceso a su servidor mediante el sistema de autenticación basado en claves SSH. Este paso bloqueará o deshabilitará el inicio de sesión basado en contraseña por completo, por lo que es crucial que al menos un usuario con privilegios de root tenga acceso al servidor a través de la clave SSH.

Inicie sesión en su servidor Ubuntu remoto y escriba el comando que se muestra a continuación.

sudo vim /etc/ssh/sshd_config
  • Presione Esc, /escriba 'PasswordAuthentication' y presione enter
  • Ahora presione iy cambie el valor de 'PasswordAuthentication yes' a 'PasswordAuthentication no'.
  • Presione Escy repita el proceso anterior para encontrar 'ChallengeResponseAuthentication', 'UsePAM', y cambie sus valores a notambién.
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

Una vez que todos los valores estén configurados no, presione Esc, escriba :wqy presione enter.

Para activar todos los cambios, reinicie el sshservicio usando el siguiente comando.

sudo systemctl restart ssh

Ahora abra una nueva ventana de terminal en su computadora y verifique que la autenticación de su clave SSH esté funcionando correctamente antes de cerrar la sesión actual.

Una vez que se complete el proceso de verificación, cierre todas las sesiones en ejecución.

Ahora hemos configurado con éxito la autenticación basada en claves SSH en nuestro servidor Ubuntu 20.04. Ahora nadie puede iniciar sesión en su servidor utilizando un mecanismo de inicio de sesión basado en contraseña. 


Cómo copiar y pegar en Chromebook

Cómo copiar y pegar en Chromebook

Lo primero que podría preguntarse al cambiar a un Chromebook es cómo hacer las cosas básicas, el tipo de cosas que tenía en la palma de su mano en su sistema operativo anterior. Copiar y pegar es una de esas funciones fundamentales que debe utilizar en un momento u otro.

Cómo realizar una prueba de mecanografía en Linux con tt

Cómo realizar una prueba de mecanografía en Linux con tt

En la era moderna de la tecnología, mecanografiar se ha convertido en una de las actividades más comunes para muchas profesiones. Aprender a escribir más rápido con precisión puede ayudarlo a hacer más cosas en la misma cantidad de tiempo.

¿Wi-Fi no funciona en Ubuntu? He aquí cómo solucionarlo

¿Wi-Fi no funciona en Ubuntu? He aquí cómo solucionarlo

Ubuntu es popular por su robustez y relativamente menos errores. Pero no está exento de problemas, seguro. Uno de esos problemas es con su controlador de Wi-Fi. Puede encender su sistema solo para descubrir que su Wi-Fi no funciona.

Cómo crear y escanear códigos QR en Chromebook

Cómo crear y escanear códigos QR en Chromebook

Los códigos de respuesta rápida, o códigos QR para abreviar, son códigos de barras avanzados que contienen más información que un código de barras tradicional. Estos códigos son bidimensionales, lo que le permite escanearlos vertical u horizontalmente.

Cómo instalar y eliminar paquetes en Arch Linux

Cómo instalar y eliminar paquetes en Arch Linux

¿Quiere instalar paquetes en Arch Linux pero no sabe cómo? Mucha gente se enfrenta a este problema cuando migra por primera vez de distribuciones basadas en Debian a Arch. Sin embargo, puede administrar fácilmente paquetes en su sistema basado en Arch utilizando administradores de paquetes.

El mejor editor de video gratuito para Ubuntu en 2020

El mejor editor de video gratuito para Ubuntu en 2020

Salvo toda la pelusa, aquí hay una lista de los mejores editores de video gratuitos para Ubuntu que puede usar para crear videos impresionantes.

Cómo instalar Spotify en Linux

Cómo instalar Spotify en Linux

Spotify es uno de los mayores servicios de transmisión de música que existen. Tiene clientes nativos para dispositivos móviles (Android e iOS) y de escritorio (Mac y Windows).

Los 15 mejores temas para Ubuntu 20.04 en 2020

Los 15 mejores temas para Ubuntu 20.04 en 2020

Una gran cantidad de nuevos temas actualizados están listos para instalarse en el nuevo escritorio GNOME de Ubuntu 20.04. Aquí hay una lista de los mejores temas de ubuntu en 2020

9 comandos básicos para comenzar con Linux

9 comandos básicos para comenzar con Linux

Las guías prácticas de Linux a menudo esperan que realice ciertas operaciones en la terminal, lo que puede parecer intimidante al principio. Pero no se preocupe; esta hoja de trucos de comandos de Linux cubrirá el proceso de abrir una terminal y emitir algunos comandos útiles.

Cómo mover archivos de Linux con el comando Mv

Cómo mover archivos de Linux con el comando Mv

Si bien es probable que ya sepa cómo mover un archivo en Linux usando el navegador de archivos GUI, es posible que se pregunte si hay un comando de movimiento en la terminal que le permita mover archivos rápidamente a diferentes directorios. El comando mv es el que desea y es fácil de usar con su sintaxis simple y algunos indicadores de seguridad opcionales.