Saltar al contenido principal

Cómo generar y usar claves SSH en un Mac

Por Lucas Russo, desarrollador de SSHive · Actualizado el

De no tener ninguna clave a un servidor que rechaza contraseñas, en unos cinco minutos: una clave ed25519 creada en el Terminal o en SSHive, instalada en el servidor y usada por tus perfiles.

Tiempo estimado: 5 minutos

Las contraseñas son justo lo que los bots que rastrean el puerto 22 intentan adivinar a todas horas. Un par de claves sustituye «algo que sabes» por «algo que tienes»: la mitad privada no sale nunca de tu Mac, el servidor solo guarda la mitad pública y, una vez configurada, dejas de escribir la contraseña en cada conexión. Esta guía usa ed25519, el tipo de clave corto y rápido que acepta cualquier servidor OpenSSH actual. Puedes crear la clave en el Terminal, como archivo en ~/.ssh, o en SSHive, que la guarda cifrada y fuera de ~/.ssh. Los dos caminos llevan al mismo sitio y ninguno necesita Pro: contraseña, clave y agente funcionan igual en la versión gratuita del cliente SSH.

Paso a paso

  1. Crear el par de claves, en SSHive o en el Terminal

    En SSHive: Ajustes › Claves SSH › Generar una clave. Ponle un nombre que reconozcas (prod-web, por ejemplo), deja Ed25519, el tipo marcado como recomendado (RSA 4096 y ECDSA están para los servidores que lo rechazan), añade una frase de contraseña si quieres y haz clic en Generar. La clave privada se cifra con una clave que guarda el llavero de macOS y nunca se escribe en ~/.ssh. En el Terminal: ssh-keygen -t ed25519 -C "tu@example.com", Intro para aceptar ~/.ssh/id_ed25519 y luego una frase de contraseña. Elige este camino cuando otras herramientas del Mac, git o tus scripts, necesitan la clave como archivo.
  2. Instalar la clave pública en el servidor (la última contraseña que escribes allí)

    Clave creada en SSHive: conéctate una vez al servidor con su contraseña y, en Ajustes › Claves SSH, abre Instalar en el host junto a la clave y elige esa sesión. SSHive añade la clave pública a ~/.ssh/authorized_keys por la conexión abierta, como haría ssh-copy-id, y te avisa si ya estaba. Copiar clave pública, justo al lado, sirve si prefieres pegarla tú. Archivo de clave creado en el Terminal: ssh-copy-id -i ~/.ssh/id_ed25519.pub user@host y la contraseña por última vez.
  3. Asignar la clave al perfil

    Abre el perfil (clic derecho › Editar, o + para uno nuevo). En Autenticación elige Clave privada y aparece un menú Clave SSH. Una clave creada en SSHive aparece en Claves gestionadas (pestaña Claves) y SSHive busca su frase de contraseña por ti. Para un archivo, deja Archivo local…, haz clic en Examinar y selecciona ~/.ssh/id_ed25519: un ✓ verde significa que SSHive puede leerlo, un ⚠ naranja que macOS quiere que vuelvas a elegir el mismo archivo para dar acceso. Marca Clave protegida por una frase de contraseña si la tiene y escríbela una vez. ¿Tus hosts ya tienen líneas IdentityFile en ~/.ssh/config? Importar ese archivo rellena este campo en cada uno.
  4. Qué guarda SSHive y dónde

    Un archivo de clave que eliges se queda en ~/.ssh: SSHive solo guarda su ruta y el permiso de macOS para leerlo. Las claves generadas en SSHive, las frases de contraseña y las contraseñas guardadas se cifran en tu Mac con una clave que guarda el llavero de macOS. Touch ID es opcional: Requerir Touch ID antes de descifrar contraseñas es un interruptor de los Ajustes, desactivado por defecto.
  5. Desactivar el acceso por contraseña en el servidor

    En cuanto SSHive se conecte con la clave, endurece el servidor: en /etc/ssh/sshd_config pon PasswordAuthentication no y recarga sshd (sudo systemctl reload ssh en Debian y Ubuntu). Deja esa sesión abierta y prueba una conexión nueva antes de salir: si la clave no se acepta, todavía tienes una forma de entrar. A partir de ahí nada en ese servidor acepta contraseñas y los bots del puerto 22 ya no tienen nada que adivinar.

Preguntas frecuentes

¿Debo usar RSA, ECDSA o ed25519?+
ed25519 es la opción correcta hoy: claves cortas, rápidas y sin debilidades conocidas. Deja RSA 4096 para servidores con un OpenSSH anterior a la 6.5, que no conoce ed25519, o para sistemas cuya política todavía exige RSA. ECDSA funciona, pero no aporta nada frente a ed25519. El generador de SSHive ofrece los tres, con ed25519 en primer lugar.
¿Dónde se guardan mis claves SSH en macOS?+
Las claves creadas con ssh-keygen son archivos en ~/.ssh/; si añades una con ssh-add --apple-use-keychain, macOS guarda su frase de contraseña en el llavero. Las claves generadas en SSHive no son archivos: SSHive las guarda cifradas y muestra su mitad pública en Ajustes › Claves SSH. La copia de seguridad de los archivos de clave es cosa tuya: perder la única copia de una clave privada te deja fuera de todos los servidores que confiaban en ella.
¿Puede una misma clave servir para varios servidores?+
Sí. Instala la misma clave pública en cada servidor, uno tras otro, con Instalar en el host, y elige la clave en cada perfil. La pestaña Claves SSH muestra junto a cada clave cuántos hosts la usan, lo que te dice qué dejará de funcionar antes de borrar una.

Funciones de SSHive relacionadas

Terminal SSH

Terminal acelerado por GPU

Prueba SSHive gratis en macOS

Consigue el cliente todo en uno de SSH, SFTP, RDP y VNC para Mac. Descarga gratuita, sin registro.

Descargar SSHive gratis