Ir directamente al contenido

Ajustes de cookies

Elija por tipo qué cookies permite. Puede cambiar su elección en cualquier momento en Ajustes de cookies, al pie de cada página. Declaración de privacidad

Necesarias

Siempre activadas

Necesarias para iniciar sesión, conservar su carrito y recordar sus preferencias. Siempre están activadas.

¿Qué cookies?
  • weboke_sessie, weboke_klant, weboke_remember: su sesión y mantener la sesión iniciada
  • weboke_basket: su carrito
  • wkBtwIncl: mostrar los precios con o sin IVA
  • wok_cookies: su elección de cookies, 12 meses

Mide qué anuncio lleva a una visita o a un pedido, para no pagar por anuncios que no sirven de nada.

¿Qué cookies?
  • Google Ads a través de Google Tag Manager (_gcl_au, _gcl_aw), hasta 90 días
  • OpenAI Ads, anuncios en ChatGPT
  • wok_aff: a través de qué socio llegó a nosotros (programa de afiliados), 60 días

4,6

País e idioma

Cada país tiene su propio sitio, con los precios y el IVA de ese país.

Ver

Módulo 2 · 2.1

Crear y usar claves SSH

Módulo 2: SSH y claves · Tiempo de lectura: 10 minutos

Objetivo de aprendizaje: Después de esta lección podrá crear un par de claves, poner la clave pública en su servidor, iniciar sesión sin contraseña y guardar su clave privada de modo que perder un portátil no sea una catástrofe.

Conceptos clave: par de claves, clave pública, clave privada, ed25519, RSA, frase de contraseña (passphrase), ssh-agent, ssh-copy-id, authorized_keys, permisos 700 y 600, una clave por dispositivo, llave FIDO2

Por qué las claves son mejores que las contraseñas

En la lección 1.3 inició sesión con una contraseña. Funciona, pero un servidor en internet recibe desde el primer minuto la visita de programas que intentan adivinar contraseñas. Basta con mirar el registro de un servidor recién instalado:

root@web1:~# journalctl -u ssh --since "1 hour ago" | grep -c "Failed password"
214

Cientos de intentos por hora es lo normal. Una contraseña fuerte los detiene, pero ha creado un punto débil que no necesita. Con una clave SSH, adivinar no sirve de nada: no hay nada que adivinar que figure en un diccionario.

Una clave consta de dos partes que van juntas, un par de claves:

  • La clave privada se queda en su propio ordenador. Quien tenga este archivo (y conozca la frase de contraseña) puede iniciar sesión. No la comparta con nadie, tampoco con su proveedor ni con un servicio de asistencia.
  • La clave pública se la da al servidor. Cualquiera puede verla: con ella no se puede iniciar sesión, solo comprobar.

Al iniciar sesión, el servidor no envía ninguna contraseña por la línea. Su ordenador demuestra con una firma que tiene la clave privada, y el servidor comprueba esa firma con la clave pública. Aunque alguien esté observando la red, no ve nada que pueda reutilizar más tarde.

Crear una clave

La clave se crea en su propio ordenador, no en el servidor. En Windows 10 y 11, macOS y Linux, ssh-keygen ya viene incluido. Abra PowerShell o Terminal:

anna@laptop:~$ ssh-keygen -t ed25519 -C "anna@laptop 2026"
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/anna/.ssh/id_ed25519):
Enter passphrase for "/home/anna/.ssh/id_ed25519" (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/anna/.ssh/id_ed25519
Your public key has been saved in /home/anna/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:q3J8vX0bT2kPz9mWc1nR4sLh7uYdE5aF6gBiC0oN2xQ anna@laptop 2026

¿Qué ocurre aquí?

  • -t ed25519 elige el tipo. Ed25519 es corto, rápido y seguro, y desde OpenSSH 9.5 también es el tipo predeterminado si no indica nada. Si tiene que atender un sistema antiguo que no conoce ed25519, use RSA con al menos 3072 bits: ssh-keygen -t rsa -b 4096. Los tipos más antiguos, como DSA, se han eliminado de OpenSSH; no los utilice.
  • -C es solo un comentario. Escriba algo que le permita saber más adelante de qué dispositivo es la clave. Eso ayuda muchísimo cuando tenga que revocar una clave.
  • La frase de contraseña (passphrase) cifra la clave privada en su disco. Si le roban el portátil, el ladrón tendrá un archivo cifrado. Sin frase de contraseña, tendría acceso inmediato a todos sus servidores.

Ahora tiene dos archivos:

ArchivoQué es¿Compartir?
~/.ssh/id_ed25519Clave privadaNunca
~/.ssh/id_ed25519.pubClave pública, una sola línea de textoSí, con el servidor

En Windows se encuentran en C:\Users\anna\.ssh\. La clave pública es una sola línea que empieza por ssh-ed25519:

anna@laptop:~$ cat ~/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHk2... anna@laptop 2026

Poner la clave pública en el servidor

El servidor busca las claves públicas en el archivo ~/.ssh/authorized_keys del usuario con el que inicia sesión. Cada línea es una clave. Hay tres formas de llevar su clave hasta allí:

1. Durante la instalación. La mayoría de los proveedores tienen un campo para su clave pública al crear o reinstalar un VPS. En WebOké ese campo se llama "Clave SSH" en la pantalla del VPS; en otros proveedores funciona de forma parecida. Es la mejor forma: así nunca tiene que estar activado el inicio de sesión con contraseña.

2. Con ssh-copy-id (macOS y Linux), mientras el inicio de sesión con contraseña todavía funciona:

anna@laptop:~$ ssh-copy-id anna@192.0.2.10
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed
anna@192.0.2.10's password:
Number of key(s) added: 1

3. A mano, por ejemplo desde Windows o a través de la consola de su proveedor. Pegue la línea de su archivo .pub en authorized_keys y ajuste los permisos:

anna@web1:~$ mkdir -p ~/.ssh
anna@web1:~$ nano ~/.ssh/authorized_keys
anna@web1:~$ chmod 700 ~/.ssh
anna@web1:~$ chmod 600 ~/.ssh/authorized_keys

Esos permisos no son un detalle menor. El servidor SSH los comprueba (la opción StrictModes está activada por defecto): si otros pueden escribir en su carpeta .ssh o en su carpeta personal, ignora sus claves. Entonces simplemente vuelve a ver una petición de contraseña, sin ningún mensaje de error claro. En la lección 3.1 aprenderá a leer los permisos.

Después, pruebe en una ventana nueva:

anna@laptop:~$ ssh anna@192.0.2.10
Enter passphrase for key '/home/anna/.ssh/id_ed25519':
anna@web1:~$

La pregunta viene ahora de su propio ordenador (la frase de contraseña de su clave), ya no del servidor.

ssh-agent: desbloquear una sola vez

Escribir la frase de contraseña cada vez resulta incómodo. El ssh-agent mantiene su clave desbloqueada en memoria mientras tenga la sesión iniciada en su ordenador:

anna@laptop:~$ ssh-add ~/.ssh/id_ed25519
Enter passphrase for /home/anna/.ssh/id_ed25519:
Identity added: /home/anna/.ssh/id_ed25519 (anna@laptop 2026)
anna@laptop:~$ ssh-add -l
256 SHA256:q3J8vX0bT2kPz9mWc1nR4sLh7uYdE5aF6gBiC0oN2xQ anna@laptop 2026 (ED25519)

En macOS el agente se vincula con el llavero; en Windows es el servicio "OpenSSH Authentication Agent" (actívelo una sola vez en Servicios). Así tiene la comodidad de no escribir contraseña y, aun así, una clave cifrada en el disco.

Tenga cuidado con el reenvío del agente (agent forwarding, ssh -A): permite que el servidor en el que inicia sesión utilice su agente. Quien sea root en ese servidor podrá seguir adelante con su clave. Úselo solo en servidores en los que confíe plenamente, o utilice ProxyJump (lección 2.3).

Una clave por dispositivo, y saber cuáles están dónde

Un error frecuente: copiar una misma clave privada al portátil, al PC y al teléfono. Si pierde un dispositivo, tendrá que sustituir la clave en todas partes y volver a configurar todos los dispositivos. Es mejor:

  • crear una clave propia en cada dispositivo, con un comentario claro (-C "anna@telefoon");
  • poner todas las claves públicas en authorized_keys, una por línea;
  • si pierde un dispositivo, quitar solo esa línea.

Revise con regularidad qué claves tienen acceso:

anna@web1:~$ ssh-keygen -lf ~/.ssh/authorized_keys
256 SHA256:q3J8vX0bT2kPz9mWc1nR4sLh7uYdE5aF6gBiC0oN2xQ anna@laptop 2026 (ED25519)
256 SHA256:Zt5oP1yW8eQ3rK6sV0bN9mD2xA4cH7jL1uI5fG8tE3w anna@telefoon (ED25519)

Si aparece una clave que no reconoce, es una señal de alarma (lección 10.3). A los intrusos les gusta añadir su propia clave en authorized_keys para volver más tarde.

Una llave de hardware (FIDO2, como una YubiKey) también es posible. Con ssh-keygen -t ed25519-sk, la parte secreta está en la propia llave y tiene que tocarla cada vez que la use. Un archivo robado no vale nada. Es un buen paso adicional, pero no es necesario para empezar.

¿Ha perdido su clave privada?

Si pierde su única clave privada y el inicio de sesión con contraseña está desactivado, ya no podrá entrar por SSH. Por eso:

  • ponga siempre al menos dos claves en el servidor (por ejemplo, la del portátil y la del PC);
  • sepa cómo funciona la consola de su proveedor (lección 1.2). Allí inicia sesión como si conectara un teclado al servidor, y funciona también sin SSH. En WebOké se llama Consola en la pantalla del VPS; otros proveedores lo llaman consola VNC, consola web o consola de emergencia.

En AlmaLinux y Rocky Linux

Todo lo que se explica en esta lección funciona igual. Hay una trampa adicional: con SELinux activado, ~/.ssh debe tener la etiqueta de seguridad correcta. Si creó o copió la carpeta a mano y su clave se ignora, restorecon -Rv ~/.ssh lo corrige.

Resumen

  • Un par de claves consta de una clave privada (se queda con usted) y una clave pública (va al servidor, en ~/.ssh/authorized_keys).
  • Cree las claves con ssh-keygen -t ed25519 en su propio ordenador, con una frase de contraseña; use ssh-agent para mayor comodidad.
  • Los permisos importan: ~/.ssh en 700 y authorized_keys en 600; de lo contrario, el servidor ignora su clave.
  • Una clave por dispositivo, con un comentario claro, para poder revocar una sola.
  • Tenga una segunda clave y conozca la consola de su proveedor como acceso de emergencia.

Cuestionario

1. ¿Qué archivo puede dar a su proveedor o a un compañero para obtener acceso a un servidor?



2. Ha puesto su clave en authorized_keys, pero el servidor sigue pidiendo una contraseña. ¿Cuál es una causa frecuente?



3. ¿Por qué pone una frase de contraseña en su clave privada?



4. Le han robado el portátil. En el servidor hay tres claves: portátil, PC y teléfono, cada una con su propio comentario. ¿Qué hace?



5. ¿Qué riesgo tiene ssh -A (reenvío del agente) hacia un servidor en el que no confía?



Ejercicio

Ejercicio O2.1: Crear y usar una clave. Cree en su propio ordenador una clave ed25519 con una frase de contraseña y un comentario claro, póngala en su servidor (mediante el campo de su proveedor, ssh-copy-id o a mano), compruebe los permisos e inicie sesión con la clave en una ventana nueva. Después, introduzca la huella digital de su clave (obtenida con ssh-keygen -lf ~/.ssh/id_ed25519.pub) y responda a las preguntas sobre dónde está su clave privada y qué hace si la pierde. El programa solo comprueba que la huella digital tenga el formato correcto; el resto lo hace usted mismo.

Ejercicio O2.1: Crear y usar una clave

Este ejercicio lo hace usted mismo; nadie lo revisa. Marque lo que haya hecho y señale el ejercicio como realizado.




Sus marcas y notas se quedan solo en este navegador; no las enviamos a ningún sitio. Si ha iniciado sesión, en Mis cursos solo guardamos que ha realizado el ejercicio.

Para saber más

Los pasos de estos artículos se refieren a la pantalla del VPS y a los paneles de WebOké; en otros proveedores funciona de forma parecida.

Un momento…

Configure sus dominios

Configure para cada dominio los servidores de nombres, la vinculación a su hosting y quién será el titular.

Cargando sus dominios…