Utilice el comando ssh-keygen para generar un par de claves de autenticación pública/privada. Las claves de autenticación permiten a un usuario conectarse a un sistema remoto sin proporcionar una contraseña. Las claves deben generarse para cada usuario por separado. Si genera pares de claves como usuario raíz, solo la raíz puede usar las claves.
El siguiente ejemplo crea las partes pública y privada de una clave RSA:
# ssh-keygen -t rsa 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:z6zTVQ/PJYt2o96DrVYClmfcqBG8Pdb8nzqY2m2HjeY root@geeklab The key's randomart image is: +---[RSA 2048]----+ | . | | o | | * = | | * O B .| | S. B + O.| | +. = = =| | .+ooB+.o| | ..oo=Bo+.| | .o.+*E=. | +----[SHA256]-----+
Utilice la opción –t para especificar el tipo de clave que desea crear. Los valores posibles son “rsa1 ” para la versión 1 del protocolo y “dsa “, “ecdsa “, o “rsa ” para la versión 2 del protocolo.
Tiene la opción de especificar una frase de contraseña para cifrar la parte privada de la clave. Si cifra su clave personal, debe proporcionar la frase de contraseña cada vez que use la clave. Esto evita que un atacante, que tiene acceso a su clave privada y puede hacerse pasar por usted y acceder a todas las computadoras a las que tiene acceso, pueda hacerlo. El atacante aún necesita proporcionar la frase de contraseña.
El comando ssh-key del ejemplo generó dos claves en el directorio ~/.ssh:
$ ls ~/.ssh id_rsa id_rsa.pub
Para iniciar sesión o copiar archivos en un sistema remoto sin proporcionar una contraseña, copie la clave pública (~/.ssh/id_rsa.pub en este ejemplo) a ~/.ssh/authorized_keys en el sistema remoto. Configure el control remoto ~/.ssh permisos de directorio a 700 . Luego puede usar las herramientas ssh o scp para acceder al sistema remoto sin proporcionar una contraseña.
Para permitir varias conexiones, agregue la clave pública al archivo authorized_keys en el sistema remoto en lugar de copiarlo. El siguiente ejemplo agrega la clave pública:
$ cat id_rsa.pub >> authorized_keys
Puede mejorar aún más la seguridad del sistema si deshabilita la autenticación de contraseña estándar y aplica la autenticación basada en claves. Para hacerlo, establezca la opción PasswordAuthentication en no en /etc/ssh/sshd_config archivo de configuración de la siguiente manera:
# vi /etc/ssh/sshd_config PasswordAuthentication no
Esto no permite a los usuarios cuyas claves no están en authorized_keys archivo del usuario específico en el servidor para conectarse a través de ssh. Se deniega la conexión y aparece el siguiente mensaje:
$ ssh host01 Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
Establecer la opción PasswordAuthentication en sí, que es la predeterminada, permite que un usuario use una contraseña para la autenticación.