SSH utiliza pares de claves públicas y privadas para proteger la comunicación con el servidor. Las frases de contraseña SSH protegen la clave privada de ser utilizada por alguien para quien no está destinada el uso de estad dos claves (que en su conjunto llamamos llave).
Sin una frase de contraseña, cualquiera que obtenga acceso a la computadora donde reside la llave tiene el potencial de copiarla (muy en particular, la clave privada). Por ejemplo, tratándose de un computadora en casa o en la oficina, miembros de la familia, compañeros de trabajo, administradores de sistemas y actores hostiles podrían obtener acceso.
Una frase de contraseña ayuda a evitar que la clave privada sea utilizada aun cuando la computadora está comprometida.
El proceso de creación de una llave SSH es como se ilustra a continuación:
$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/Users/user/.ssh/id_rsa): /Users/user/Downloads/test Enter passphrase (empty for no passphrase): Enter same passphrase again: Passphrases do not match. Try again. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /Users/usero/Downloads/test Your public key has been saved in /Users/user/Downloads/test.pub The key fingerprint is: SHA256:uTqk+TazZEozf0ILAWC2tqMBWxTYhRnrcxiG2QPGVFY user@computer.local The key's randomart image is: +---[RSA 3072]----+ |=O=OoE | |=BB. | |+oB. | |o=.+. . | |oo+ .. S | |...o. o . | |. +*o.. | | .oBB.. | | .o=B | +----[SHA256]-----+ $
La desventaja de las frases de contraseña es que se deben ingresar cada vez que se crea una conexión usando SSH. Mientras que se puede almacenar en caché temporalmente la frase de contraseña usando ssh-agent
para no tener que ingresarla cada vez que se utilice, esto puede no ser práctico o desalentado por políticas de seguridad.