Este tutorial le mostrará cómo generar y proteger claves SSH en macOS Sierra (10.12) y macOS High Sierra (10.13). Las claves SSH le permiten iniciar sesión en su servidor sin una contraseña. Aumentan la comodidad y la seguridad al ser significativamente más resistentes a los ataques de fuerza bruta.
SSH (Secure Shell) es un protocolo que se usa con mayor frecuencia para la administración remota y para la transferencia de archivos, a menudo denominado sFTP (Protocolo seguro de transferencia de archivos). Al acceder a un servidor remoto como VPS Vultr, se recomienda usar SSH con PKE (Intercambio de clave pública) que utiliza un par de claves donde la clave pública se proporciona al servidor y la clave privada almacenada en su máquina.
Las claves SSH se pueden agregar automáticamente a los servidores durante el proceso de instalación agregando sus claves públicas en el panel de control de Vultr. Puede administrar sus claves SSH en esta página . Es importante recordar que estas son solo sus claves públicas (generalmente indicadas con .pub
), nunca debe exponer sus claves privadas.
Tipos clave
Hay varios tipos de teclas diferentes que se pueden seleccionar. Use el -t
argumento sobre la generación, como ssh-keygen -t ed25519
. El tipo de clave ED25519, que utiliza una firma de curva elíptica, es más seguro y tiene un mejor rendimiento que DSA o ECDSA. El software SSH más moderno (como OpenSSH desde la versión 6.5) admite el tipo de clave ED25519, pero aún puede encontrar software que sea incompatible, por lo que el tipo de clave predeterminado sigue siendo RSA.
El tipo de clave predeterminado es RSA de 2048 bits, que ofrece buena seguridad y compatibilidad. Para mayor seguridad, puede elegir un tamaño de clave más grande utilizando el -b
argumento en la generación, como ssh-keygen -b 4096
crear un par de claves RSA de 4096 bits.
Generación clave
Para generar una clave SSH, deberá abrir la Terminal.app
sección "Aplicaciones> Utilidades> Terminal".
Para crear un par de claves RSA de 4096 bits, ingrese:
ssh-keygen -b 4096
Entonces verás:
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/username/.ssh/id_rsa):
Al presionar Enter / Return se guardará su nuevo par de claves en esta ubicación predeterminada, lo cual se recomienda. Luego tendrá la opción de crear una frase de contraseña, que cifrará la clave para que no pueda usarse sin autorización. También se recomienda usar una frase de contraseña.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa.
Your public key has been saved in id_rsa.pub.
The key fingerprint is:
SHA256:0irBXp+xKwT5e0ZFklbEVkzxu0Bzv9PmvstFD5w6zlQ [email protected]
The key's randomart image is:
+---[RSA 4096]----+
| =o++. |
| + + .. |
| . . + o o |
| .o . .. + + |
| ooo S. . E o|
| . oo+.+ + ++|
| o..o+ + .o=|
| .o o. + ..oo|
| +. o ==|
+----[SHA256]-----+
En este punto, su par de llaves ha sido creado y almacenado ~/.ssh/id_rsa
. Para que la clave esté disponible para el sistema y almacenar la frase de contraseña en el llavero del sistema, necesitaremos completar varios pasos adicionales. Tenga en cuenta que esto solo es necesario si prefiere que no se le solicite la frase clave cada vez que se utiliza.
Agregar nuevo par de claves al agente SSH
Introduzca ssh-add -K ~/.ssh/id_rsa
. Luego se le pedirá la frase de contraseña y verá lo siguiente:
Identity added: id_rsa ([email protected])
Si desea utilizar esta clave SSH para iniciar sesión en un servidor que ya se ha creado, puede utilizar la ssh-copy-id
herramienta para almacenar la clave pública en el servidor al que desea acceder.
Agregar nueva clave al servidor remoto
Utilizando ssh-copy-id
:
# Substitute your server IP
ssh-copy-id -i ~/.ssh/id_rsa [email protected]
La consola solicitará su contraseña de inicio de sesión ya que el servidor remoto aún no conoce su clave. Verá lo siguiente:
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "id_rsa.pub"
Number of key(s) added: 1
Now try logging into the machine, with: "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.
Ahora puede intentar iniciar sesión en el servidor remoto con ssh [email protected]
y debería estar conectado sin una solicitud de contraseña.