SSH significa "Secure Shell" y es un protocolo encriptado que se utiliza para iniciar sesión y administrar un servidor remoto. SSH también admite varios mecanismos de autenticación. SSH utiliza autenticación basada en contraseña y autenticación basada en clave pública para una conexión segura entre un cliente y un servidor. La autenticación basada en claves SSH es más segura que la autenticación basada en contraseñas porque las claves son muy difíciles de adivinar o descifrar utilizando la potencia informática disponible actualmente.
En este tutorial, le mostraremos cómo configurar la autenticación basada en clave SSH en un servidor Ubuntu 18.04.
Requisitos
- Dos Ubuntu 18.04 VPS nuevos en Atlantic.Net Cloud Platform.
- Contraseñas raíz configuradas en ambos servidores.
Paso 1:crear un servidor en la nube de Atlantic.Net
Primero, inicie sesión en su servidor en la nube de Atlantic.Net. Cree un nuevo servidor, eligiendo Ubuntu 18.04 como sistema operativo con al menos 2 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.
Una vez que haya iniciado sesión en su servidor Ubuntu 18.04, ejecute el siguiente comando para actualizar su sistema base con los últimos paquetes disponibles.
apt-get update -y apt-get upgrade -y
Paso 2:genere la clave SSH en la máquina del cliente
Primero, inicie sesión en su máquina cliente y genere un nuevo par de claves SSH ejecutando el siguiente comando:
ssh-keygen -t rsa
Necesitarás presionar Entrar para aceptar la ubicación predeterminada del archivo y proporcionar una frase de contraseña para agregar una capa adicional de seguridad, como se muestra a continuación:
Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: cd:58:c4:35:60:6f:a4:2e:f0:b7:42:c5:20:78:86:b2 [email protected] The key's randomart image is: +--[ RSA 2048]----+ | o. ..+o+ | | . o o. =.+ . | | o o. = o | | E o B . | | S = | | . o . | | . . | | . | | | +-----------------+
El comando anterior generará un par de claves RSA de 2048 bits con una frase de contraseña segura para evitar que usuarios no autorizados inicien sesión.
Puede ver las claves públicas y privadas generadas con el siguiente comando:
ls -l .ssh/id_rsa*
Debería ver el siguiente resultado:
-rw------- 1 root root 1766 Nov 1 11:03 .ssh/id_rsa -rw-r--r-- 1 root root 401 Nov 1 11:03 .ssh/id_rsa.pub
En este punto, tiene claves públicas y privadas que puede usar para autenticarse con su servidor Ubuntu.
Paso 3:copia la clave pública en el servidor de Ubuntu
A continuación, deberá copiar la clave pública de la máquina cliente a su servidor Ubuntu 18.04. Puede copiar la clave pública con la utilidad ssh-copy-id como se muestra a continuación:
ssh-copy-id [email protected]
Debería ver el siguiente resultado:
The authenticity of host '192.168.0.102 (192.168.0.102)' can't be established. ECDSA key fingerprint is f7:9c:72:63:33:ac:d6:49:26:9c:af:c6:ff:11:27:01. Are you sure you want to continue connecting (yes/no)? yes
Escribe "sí ” y presione ENTRAR continuar. Debería ver el siguiente resultado:
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys [email protected]'s password:
A continuación, se le pedirá que ingrese el nombre de usuario y la contraseña remotos. Después de la autenticación exitosa, el contenido de la clave pública ~/.ssh/id_rsa.pub se agregará al archivo de usuario remoto ~/.ssh/authorized_keys como se muestra a continuación:
Number of key(s) added: 1 Now try logging into the machine, with: "ssh '[email protected]'" and check to make sure that only the key(s) you wanted were added.
Paso 4:deshabilite la autenticación de contraseña SSH
Luego, inicie sesión en su máquina servidor Ubuntu 18.04 y desactive la autenticación basada en contraseña SSH para agregar una capa adicional de seguridad a su servidor.
Puede deshabilitar la autenticación basada en contraseña editando el archivo /etc/ssh/sshd_config:
nano /etc/ssh/sshd_config
Busque las siguientes líneas y cambie el valor a "no":
PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no
Guarde y cierre el archivo, luego reinicie el servicio SSH para aplicar la configuración:
systemctl restart ssh
Paso 5:inicie sesión en el servidor usando claves SSH
En este punto, la autenticación basada en clave SSH está configurada. Ahora es el momento de iniciar sesión en la máquina del servidor Ubuntu 18.04 con la clave pública.
Puede iniciar sesión en su servidor Ubuntu 18.04 simplemente ejecutando el siguiente comando:
ssh [email protected]
Si está iniciando sesión por primera vez, se le solicitará como se muestra a continuación:
The authenticity of host '192.168.0.102 (192.168.0.102)' can't be established. ECDSA key fingerprint is f7:9c:72:63:33:ac:d6:49:26:9c:af:c6:ff:11:27:01. Are you sure you want to continue connecting (yes/no)? yes
Escriba Sí y pulsa Intro clave para continuar. A continuación, se le pedirá que ingrese la frase de contraseña para su clave privada como se muestra a continuación:
Enter passphrase for key '/root/.ssh/id_rsa':
Proporcione su frase de contraseña de clave privada y presione Enter para iniciar sesión en su servidor.
Conclusión
En el tutorial anterior, aprendimos cómo configurar una autenticación basada en clave SSH con una frase de contraseña en Ubuntu 18.04. La conexión entre su máquina cliente y la máquina servidor Ubuntu 18.04 ahora es altamente segura. También puede usar la misma clave para otro servidor remoto. Si está listo para comenzar con la autenticación basada en clave SSH, pruebe el alojamiento VPS con Atlantic.Net hoy.