Claves SSH

La conexión remota al servidor siempre requiere la autenticación del cliente para que terceros no autorizados no puedan acceder. El método básico de autenticación es el uso de una contraseña. Pero las contraseñas tienen una desventaja: pueden ser descifradas, especialmente si el propietario del servidor no se preocupó por la complejidad de la contraseña.

Para conexiones SSH a servidores Linux, se recomienda un método alternativo: la autenticación mediante claves SSH. Estas claves son un par: una clave privada y una clave pública. La clave privada debe almacenarse, respectivamente, en el entorno privado del cliente, y la clave pública se envía al servidor y se coloca en el authorized_keys archivo.

Este método de autenticación no es aplicable a servidores Windows, ya que la conexión RDP carece de dicha funcionalidad.

El uso de claves SSH no es un requisito del sistema de la plataforma Navixy, pero se recomienda encarecidamente a los propietarios de servidores por razones de seguridad.

Creación de claves SSH en Linux

Si su estación de trabajo utiliza un sistema operativo basado en Linux, entonces necesita usar el paquete openssh . Puede estar preinstalado o requerir instalación adicional. En Ubuntu y Debian se instala con este comando:

apt -y install openssh-server

Para otras distribuciones, el comando puede ser diferente.

Para comenzar a generar claves, ejecute este comando:

ssh-keygen

Se le pedirá que introduzca la ruta del archivo donde se colocarán las claves. Puede dejar la ubicación predeterminada (entre paréntesis) pulsando Enter, o especificar una ubicación y nombre de archivo personalizados.

A continuación, se le pedirá que introduzca una frase de contraseña. Es una medida de seguridad adicional para proteger su clave frente al uso por terceros en caso de que se vea comprometida. Este paso es opcional.

Una vez que haya generado correctamente un par de claves, verá una notificación:

Con la ubicación predeterminada, la clave pública se almacena en /root/.ssh/id_rsa.pub, y la clave privada se almacena en /root/.ssh/id_rsa.

Ahora necesita copiar la clave pública a su servidor, en el directorio del usuario en cuyo nombre se realizará la conexión remota. Supongamos que el nombre de usuario es navixy. Conéctese a su servidor y edite el archivo con cualquier editor de texto, por ejemplo:

Especifique el contenido de su clave pública después de ssh-rsa. Puede añadir un comentario breve después de la clave para explicar su propósito.

Guarde el archivo.

Ahora puede conectarse al servidor usando la clave SSH recién creada.

Después de esto, puede desactivar la autenticación por contraseña en su servidor.

Creación de claves SSH en Windows

Si utiliza Windows, el cliente más común para conectarse a un servidor vía SSH es PuTTY. También existen muchos clientes alternativos, pero todos cumplen básicamente la misma función, por lo que la elección es suya.

En Windows, la generación de claves SSH se realiza con la utilidad PuTTYgen que viene con el paquete de instalación de PuTTY.

Inicie PuTTYgen desde el menú de inicio.

Asegúrese de que el tipo de clave RSA esté seleccionado y haga clic en Generate.

Durante el proceso de generación de claves, deslice el ratón varias veces sobre la ventana de la aplicación para crear valores aleatorios.

Tras completar la creación de la clave, la clave pública se mostrará en PuTTYgen y la clave privada se almacenará en la memoria de la aplicación. Para guardar estas claves, haga clic en Save public key y Save private key. Especifique el directorio en su PC para almacenar los archivos de clave.

Al guardar la clave privada, si el campo Key passphrase no está rellenado, se le preguntará "¿Está seguro de que quiere guardar esta clave sin una frase de contraseña para protegerla?". Haga clic en o vuelva a la ventana anterior para especificar la frase de contraseña.

Ahora la clave pública debe ser copiada a su servidor en el authorized_keys archivo. Se encuentra en el directorio del usuario en cuyo nombre se realizará la conexión remota. Supongamos que el nombre de usuario es navixy, y en este caso la ubicación del archivo será /home/navixy/.ssh/authorized_keys.

Use cualquier cliente de transferencia de archivos para trabajar con archivos en un servidor Linux remoto. Aquí explicaremos el proceso usando WinSCP como el cliente más popular.

Abra el archivo authorized_keys via WinSCP para editarlo.

Copie el valor de la clave pública desde la ventana de PuTTYgen o desde el archivo guardado previamente. La clave debe comenzar con ssh-rsa. Si ya hay alguna clave guardada en el archivo authorized_keys , añada la nueva clave después de ella, comenzando en una nueva línea.

Guarde el archivo.

Ahora puede conectarse a su servidor vía PuTTY usando el archivo de clave privada. Debe especificar la ruta al mismo en su PC. Para ello, seleccione la ruta requerida en Connection - SSH - Auth - Credentials sección (nueva versión de PuTTY) o Connection - SSH - Auth (versión anterior), en el campo Private key for authentication .

Especifique el nombre de usuario y la dirección del servidor (p. ej. [email protected]) en la pestaña Session y conéctese a su servidor. Si todo se ha hecho correctamente, la conexión se establecerá sin necesidad de introducir una contraseña.

Claves SSH en soluciones en la nube

Cuando despliega una máquina virtual en servicios en la nube como AWS, MS Azure y similares, puede emitir una clave SSH en el momento de crear la máquina, o añadir una clave existente si ya se creó previamente. Cuando hace esto, el servicio en la nube insertará automáticamente la clave pública en el authorzed_keys del usuario del servidor. Todo lo que necesita hacer después de que el servidor se haya desplegado es realizar una conexión SSH usando la clave privada.

Aunque las plataformas en la nube le permiten crear claves SSH, no almacenan la parte privada en su lado. Una vez descargada, la clave privada debe guardarse de forma segura, porque en caso de pérdida el acceso al servidor será imposible.

Desactivación de la autenticación por contraseña

Una vez que haya configurado correctamente la autenticación por claves, no necesita mantener la autenticación por contraseña. Por razones de seguridad, puede desactivarla.

Conéctese al servidor vía SSH y abra el archivo sshd_config para editarlo, p. ej. con el editor Vi:

Busque el parámetro PasswordAuthentication en el archivo y configúrelo en no:

Guarde el archivo. Reinicie el servicio sshd:

Ahora solo podrá establecer la conexión remota a su servidor vía SSH usando la clave SSH añadida previamente. La autenticación por contraseña está desactivada.

Última actualización

¿Te fue útil?