Le mostraremos cómo configurar claves SSH en Ubuntu 16.04. SSH o Secure SHELL es el protocolo de red criptográfico basado en UNIX más popular y confiable. Se puede utilizar para una comunicación de datos segura, inicios de sesión en servidores remotos, ejecución de comandos remotos y muchos otros servicios de red seguros entre dos servidores en red. Normalmente, la autenticación de contraseña se usa para conectarse a un servidor remoto a través de SSH, pero en este tutorial le mostraremos cómo iniciar sesión en su Ubuntu 16.04 VPS usando claves SSH. Generaremos un par de claves (clave privada y pública), colocaremos la clave privada en su servidor y luego usaremos su clave privada almacenada localmente para obtener acceso a su servidor. Este método proporciona una forma más segura de conectarse a su servidor, en lugar de usar solo una contraseña.
Durante el transcurso de este tutorial, también explicaremos cómo generar un par de claves SSH tanto en Linux como en un sistema operativo Windows.
1. Generación de claves SSH en Ubuntu 16.04
Para generar el par de claves SSH, simplemente ejecute el siguiente comando desde la terminal en su computadora local basada en Ubuntu 16.04:
ssh-keygen
Puede presionar Enter para dejar los valores predeterminados para todas las preguntas. Opcionalmente, también puede establecer una frase de contraseña para agregar una capa adicional de seguridad, o simplemente presione Entrar nuevamente si no lo desea.
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: SHA256:2QB/eJ39/4N7Q3PRSghNJmglX6hh2pSqQ3uGHhfd7Og root@rosehosting The key's randomart image is: +---[RSA 2048]----+ | . .+o++ | | oB+o=.o | | O+=+.o.. .| | . + +*o . .o.| | . + .So. . .o| | * + . . .oo| | . * . o +| | . E . +.| | .o +| +----[SHA256]-----+
Esto creará una clave privada y pública de 2048 bits (id_rsa e id_rsa.pub) en el directorio /root/.ssh/ de su sistema local.
Cargue la clave pública en el servidor Ubuntu 16.04 con ssh-copy-id
El siguiente paso requiere que cargue la clave pública generada en su servidor Ubuntu remoto. Hay más de un método para hacer esto.
La forma más sencilla es usar el ssh-copy-id utilidad. Para que esto funcione, debería poder conectarse a su servidor a través de SSH utilizando la autenticación de contraseña.
Luego puede usar el siguiente comando para cargar la clave pública en su servidor remoto:
ssh-copy-id root@remote_server
Se le pedirá que ingrese su contraseña de usuario (en nuestro ejemplo, sería la contraseña de root) y presione Entrar. Una vez establecida la conexión, el contenido de id_rsa.pub (la clave pública) se copiará en el archivo /root/ssh/authorized_keys en el servidor remoto.
Se debe mostrar el siguiente resultado:
Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'root@remote-host'" and check to make sure that only the key(s) you wanted were added.
A partir de ahora, debería poder autenticarse en su servidor Ubuntu usando sus claves SSH.
Cargar la clave pública al servidor de Ubuntu manualmente
Si el ssh-copy-id herramienta no está disponible en su sistema, puede iniciar sesión en su servidor y hacerlo manualmente.
Primero, conéctese a su servidor a través de SSH con:
ssh root@remote_server
Una vez conectado, deberá crear un nuevo directorio .ssh en el servidor remoto con el siguiente comando:
mkdir /root/.ssh
A continuación, debe copiar la clave pública en el archivo authorized_keys en el servidor remoto. Puede crear y luego agregar el contenido de la clave pública usando el editor de texto nano:
nano /root/.ssh/authorized_keys
También deberá abrir el archivo de configuración de SSH:
nano /etc/ssh/sshd_config
y asegúrese de que las siguientes líneas existan y no estén comentadas:
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile %h/.ssh/authorized_keys
Guarde los cambios y reinicie el servicio SSH:
systemctl restart ssh
Eso es todo. A partir de ahora, utilizará las claves SSH cada vez que intente conectarse a su servidor remoto.
2. Generación de claves SSH en un sistema basado en Windows con PuTTY y PuTTYGen
Si está utilizando el sistema operativo Windows en su máquina local, necesitará PuTTY para conectarse a su servidor a través de SSH y PuTTYgen para generar sus claves SSH. Puede descargarlos aquí (https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html).
Para generar las claves SSH, continúe e inicie PuTTYGen en su computadora.
En la parte inferior, puede elegir la cantidad de bits para su clave generada. Escriba 4096 y luego haga clic en Generar. Comience a mover el mouse sobre el área en blanco en la pantalla de PuTTYgen para generar una clave única basada en la entrada del movimiento del mouse.
Cuando se llene la barra de progreso verde, se generará la clave pública. Puede copiar la clave y guardarla dentro de un archivo .txt en su computadora.
Para guardar la clave privada, deberá hacer clic en el botón Guardar clave privada. Además, también puede establecer una frase de contraseña clave para su clave privada.
Ahora puede abrir PuTTY y asignar la ubicación de su clave privada, haga clic en SSH en el menú Conexión y luego haga clic en Autenticación. Haga clic en el botón de exploración e ingrese la ubicación de su archivo de clave privada guardado.
A continuación, necesitamos cargar la clave pública en su servidor. Para hacer esto, haga clic en Sesión, ingrese su dirección IP y el número de puerto SSH de su servidor, seleccione SSH para Tipo de conexión y haga clic en Abrir.
Se le pedirá su nombre de usuario y contraseña. Puede iniciar sesión como usuario root, usando su contraseña de root.
Una vez que haya iniciado sesión en su servidor, primero cree el directorio .ssh:
mkdir /root/.ssh
Luego cree el archivo authorized_keys dentro del directorio .ssh y agregue el contenido de su clave pública dentro de este archivo:
nano /root/.ssh/authorized_keys
También puede abrir el archivo de configuración SSH en su servidor con:
nano /etc/ssh/sshd_config
y asegúrese de que las siguientes líneas existan y no estén comentadas:
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile %h/.ssh/authorized_keys
Si se han realizado cambios, no olvide reiniciar el servicio sshd con:
systemctl restart ssh
Con esto, las claves SSH se han configurado correctamente. Ahora puede desconectarse de su servidor y salir de PuTTY. La próxima vez que intente conectarse a su servidor, PuTTY utilizará la clave pública que haya configurado para establecer la conexión.
3. Deshabilitar autenticación de contraseña
Una vez que haya configurado correctamente las claves SSH utilizando cualquiera de los métodos anteriores y se haya asegurado de que puede iniciar sesión en su servidor utilizando la autenticación basada en clave SSH, puede desactivar la autenticación basada en contraseña en su servidor. Esto agregará una capa adicional de seguridad y evitará todos los ataques de fuerza bruta hacia su servidor.
Para deshabilitar la autenticación basada en contraseña, abra el archivo de configuración SSH con:
nano /etc/ssh/sshd_config
Y descomente la siguiente línea y establezca su valor en "no":
PasswordAuthentication no
Reinicie el servicio sshd con:
systemctl restart ssh That’s it. You have successfully set up SSH keys on your Ubuntu 16.04 VPS.
Por supuesto, no tiene que configurar la clave SSH en su Ubuntu 16.04 VPS, si utiliza uno de nuestros servicios de alojamiento de Ubuntu, en cuyo caso simplemente puede pedirle a nuestros administradores expertos de Linux que configuren las claves SSH por usted. Están disponibles las 24 horas del día, los 7 días de la semana y atenderán su solicitud de inmediato.
PD . Si te gustó esta publicación, compártela con tus amigos en las redes sociales usando los botones a continuación o simplemente deja un comentario en la sección de comentarios. Gracias.