El protocolo de red SSH se usa para es­ta­ble­cer una conexión segura y en­cri­p­ta­da con un di­s­po­si­ti­vo remoto −como podría ser un servidor. Esta conexión permite, por ejemplo, realizar el ma­n­te­ni­mie­n­to del servidor desde un equipo local (ordenador) o manejarlo por medio de comandos. De­pe­n­die­n­do de la versión utilizada, se usan di­fe­re­n­tes al­go­ri­t­mos de co­di­fi­ca­ción (p. ej., SSH-2 utiliza por regla general AES). Mientras el servidor ide­n­ti­fi­ca al cliente por medio de un ce­r­ti­fi­ca­do de seguridad, existen di­fe­re­n­tes maneras para que un cliente se ide­n­ti­fi­que ante un servidor. Junto a la variante clásica de nombre de usuario y co­n­tra­se­ña, se en­cue­n­tran las llamadas “llaves SSH”, que constan de una clave privada y otra pública.

Au­te­n­ti­ca­ción con clave pública

El método de au­te­n­ti­ca­ción con clave SSH también se conoce como au­te­n­ti­ca­ción con clave pública y aventaja en algunos aspectos al registro estándar con usuario y co­n­tra­se­ña. En este tipo de au­te­n­ti­ca­ción solo se almacena en el servidor la llave pública –la co­n­tra­se­ña usada, o su valor Hash, no se guarda. La clave privada, en­cri­p­ta­da para mayor seguridad, se almacena en el ordenador y permanece así a sa­l­va­gua­r­da. La clave pública puede verificar firmas creadas mediante la clave SSH privada, pe­r­mi­tie­n­do el registro au­to­má­ti­co en el servidor. Aunque alguien no au­to­ri­za­do 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 co­n­tra­se­ñ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 be­ne­fi­ciar­te de las ventajas que brindan las co­ne­xio­nes SSH necesitas alguno de los paquetes de SSH di­s­po­ni­bles como OpenSSH para sistemas ope­ra­ti­vos Unix, WinSCP para Windows o PuTTY para ambos. Estos paquetes, además de im­ple­me­n­tar el protocolo SHH, también incluyen apli­ca­cio­nes con las que puedes, entre otras cosas, generar las claves SHH. En el siguiente tutorial te ex­pli­ca­mos paso a paso cómo co­n­fi­gu­rar­las con OpenSSH y PuTTY.

Co­n­fi­gu­rar 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 en­cue­n­tran pa­rá­me­tros op­cio­na­les con los cuales podemos de­te­r­mi­nar el tipo de cifrado (-t), RSA en este caso, así como la longitud en bits de la clave (-b), donde 4096 re­pre­se­n­ta el valor máximo. Si no se usan estas es­pe­ci­fi­ca­cio­nes la clave se genera con los ajustes estándar.

  2. En el siguiente cuadro de diálogo se puede ver o cambiar el di­re­c­to­rio donde se guardará la clave SSH ("Enter file in which to save the key") y definir una frase de co­n­tra­se­ña para la clave privada ("Enter pa­s­s­ph­ra­se"). Si prefieres utilizar el di­re­c­to­rio estándar y no quieres definir ninguna ide­n­ti­fi­ca­ció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 di­re­c­to­rio en archivos di­fe­re­n­tes. El archivo id_rsa.pub contiene la clave pública. Esta clave deberá ser guardada en la su­b­ca­r­pe­ta .ssh en el archivo au­tho­ri­zed_keys en el servidor. Con este comando puedes copiar la clave en el di­re­c­to­rio principal del co­rre­s­po­n­die­n­te usuario en el servidor:

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

  4. Re­gí­s­tra­te en el servidor y copia la clave pública SSH en la carpeta correcta:

    ssh USER@HOST.es

    cat ~/id_rsa.pub >> ~/.ssh/au­tho­ri­zed_keys


  5. El par de claves y la frase de co­n­tra­se­ña –si se ha definido- deberían eje­cu­tar­se au­to­má­ti­ca­me­n­te. Si no lo hacen, tendrás que comprobar si los derechos de la carpeta .ssh y del archivo au­tho­ri­zed_keys se es­ta­ble­cie­ron co­rre­c­ta­me­n­te.

  6. Como la au­te­n­ti­ca­ción con clave pública sustituye a la estándar con co­n­tra­se­ña, puedes des­ac­ti­var esta última en el archivo de co­n­fi­gu­ra­ción /etc/ssh/sshd_config
    (o di­re­c­ta­me­n­te bajo /etc/, por ejemplo en Cygwin) cambiando la línea "Pa­s­s­wo­r­dAu­the­n­ti­ca­tion yes" a "Pa­s­s­wo­r­dAu­the­n­ti­ca­tion no". A co­n­ti­nua­ció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 he­rra­mie­n­ta PuTTYgen para generar pares de claves. Este generador de claves se encuentra en el mismo di­re­c­to­rio 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, se­le­c­cio­na­mos en "Pa­ra­me­te­rs" 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 in­di­vi­dua­li­dad del código.

  4. Concluida la creación de las dos claves, puedes añadirles op­cio­na­l­me­n­te un co­me­n­ta­rio y una frase de co­n­tra­se­ña.

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

  6. Para tra­n­s­fe­rir la clave pública al servidor, conéctate a este mediante PuTTY y copia el código desde el po­r­ta­pa­pe­les ("Public key for pasting into OpenSSH au­tho­ri­zed_keys file") en el archivo au­tho­ri­zed_keys.

  7. En este último paso in­tro­du­ci­mos en el cliente PuTTY la clave privada. Para ello abrimos el menú de co­n­fi­gu­ra­ción y se­le­c­cio­na­mos el archivo de la clave privada en "Category" > "Co­n­ne­c­tion" > "SSH" > "Auth" > "Private key file for au­the­n­ti­ca­tion".

Ir al menú principal