Claves SSH para una conexión de red más segura

El protocolo de red SSH se usa para establecer una conexión segura y encriptada con un dispositivo remoto −como podría ser un servidor. Esta conexión permite, por ejemplo, realizar el mantenimiento del servidor desde un equipo local (ordenador) o manejarlo por medio de comandos. Dependiendo de la versión utilizada, se usan diferentes algoritmos de codificación (p. ej., SSH-2 utiliza por regla general AES). Mientras el servidor identifica al cliente por medio de un certificado de seguridad, existen diferentes maneras para que un cliente se identifique ante un servidor. Junto a la variante clásica de nombre de usuario y contraseña, se encuentran las llamadas “llaves SSH”, que constan de una clave privada y otra pública.

Autenticación con clave pública

El método de autenticación con clave SSH también se conoce como autenticación con clave pública y aventaja en algunos aspectos al registro estándar con usuario y contraseña. En este tipo de autenticación solo se almacena en el servidor la llave pública –la contraseña usada, o su valor Hash, no se guarda. La clave privada, encriptada para mayor seguridad, se almacena en el ordenador y permanece así a salvaguarda. La clave pública puede verificar firmas creadas mediante la clave SSH privada, permitiendo el registro automático en el servidor. Aunque alguien no autorizado tenga acceso a la clave pública, es casi imposible que pueda deducir de esta la privada. Confiando en estas claves SSH para tu conexión de red en lugar de en una sola contraseña, al uso no solo te ahorras el cuadro de diálogo de registro, sino que ganas en seguridad.

¿Cómo usar las claves SSH?

Para beneficiarte de las ventajas que brindan las conexiones SSH necesitas alguno de los paquetes de SSH disponibles como OpenSSH para sistemas operativos Unix, WinSCP para Windows o PuTTY para ambos. Estos paquetes, además de implementar el protocolo SHH, también incluyen aplicaciones con las que puedes, entre otras cosas, generar las claves SHH. En el siguiente tutorial te explicamos paso a paso cómo configurarlas con OpenSSH y PuTTY.

Configurar claves SSH con OpenSSH

  1. Primero hay que generar la clave SSH, para lo cual usamos el comando:

    ssh-keygen -t rsa -b 4096

    En este comando se encuentran parámetros opcionales con los cuales podemos determinar el tipo de cifrado (-t), RSA en este caso, así como la longitud en bits de la clave (-b), donde 4096 representa el valor máximo. Si no se usan estas especificaciones la clave se genera con los ajustes estándar.

  2. En el siguiente cuadro de diálogo se puede ver o cambiar el directorio donde se guardará la clave SSH ("Enter file in which to save the key") y definir una frase de contraseña para la clave privada ("Enter passphrase"). Si prefieres utilizar el directorio estándar y no quieres definir ninguna identificación para la clave, deja los campos vacíos y salta este paso pulsando Enter.

  3. Ahora ambas claves SSH están guardadas en este directorio en archivos diferentes. El archivo id_rsa.pub contiene la clave pública. Esta clave deberá ser guardada en la subcarpeta .ssh en el archivo authorized_keys en el servidor. Con este comando puedes copiar la clave en el directorio principal del correspondiente usuario en el servidor:

      scp ~/.ssh/id_rsa.pub USER@HOST.de

  4. Regístrate en el servidor y copia la clave pública SSH en la carpeta correcta:

    ssh USER@HOST.es

    cat ~/id_rsa.pub >> ~/.ssh/authorized_keys


  5. El par de claves y la frase de contraseña –si se ha definido- deberían ejecutarse automáticamente. Si no lo hacen, tendrás que comprobar si los derechos de la carpeta .ssh y del archivo authorized_keys se establecieron correctamente.

  6. Como la autenticación con clave pública sustituye a la estándar con contraseña, puedes desactivar esta última en el archivo de configuración /etc/ssh/sshd_config
    (o directamente bajo /etc/, por ejemplo en Cygwin) cambiando la línea "PasswordAuthentication yes" a "PasswordAuthentication no". A continuación se reinicia el servidor.

 

Generar una clave SSH con el generador de clave PuTTY

  1. Al usar PuTTY para crear una conexión SSH se dispone por defecto de la herramienta PuTTYgen para generar pares de claves. Este generador de claves se encuentra en el mismo directorio en que se ha extraído e instalado PuTTY. Si no se dispone de ella, se puede descargar en la página de PuTTY.

  2. Una vez iniciado el programa, seleccionamos en "Parameters" el tipo de cifrado (para SSH-2 podemos escoger RSA o DAS). Bajo "Number of bits in a generated key" definimos la longitud de la clave.

  3. Haz clic en "Generate" y mueve el ratón en el espacio vacío del cuadro de diálogo de forma que se garantice la individualidad del código.

  4. Concluida la creación de las dos claves, puedes añadirles opcionalmente un comentario y una frase de contraseña.

  5. Ambas claves se guardan en "Save private key" y "Save public key".

  6. Para transferir la clave pública al servidor, conéctate a este mediante PuTTY y copia el código desde el portapapeles ("Public key for pasting into OpenSSH authorized_keys file") en el archivo authorized_keys.

  7. En este último paso introducimos en el cliente PuTTY la clave privada. Para ello abrimos el menú de configuración y seleccionamos el archivo de la clave privada en "Category" > "Connection" > "SSH" > "Auth" > "Private key file for authentication".