VPNSmith
VPS Contabo
self-host-vpnINFO

WireGuard «Key is not the correct length or format»: causas

Una clave WireGuard son 32 bytes escritos como 44 caracteres base64 que terminan en un signo igual. El error significa que lo que pegaste no es eso, y la causa casi siempre es invisible: un salto de línea final, una línea partida, una clave copiada con el prompt de la shell o una clave pública donde va una privada.

Por Eric Gerard · Fundador · VPNSmith - Especialista en VPN self-host y VPS GDPR6 min de lecturaFoto vía Pexels

Arrancas la interfaz y te frena antes de que nada se conecte:

Key is not the correct length or format

La clave en pantalla parece correcta. Esa es toda la dificultad de este error: lo que está mal suele ser un carácter que no ves.

Qué es exactamente una clave válida

Una clave WireGuard son 32 bytes de datos en bruto. Escritos en base64, 32 bytes son exactamente 44 caracteres, y el último es siempre =, el carácter de relleno. Eso te da una prueba que puedes aplicar en un segundo, a ojo o con un comando:

echo -n "$KEY" | wc -c

44 sin salto de línea, 45 si el salto de línea sigue pegado. Cualquier otra cosa no es una clave, por mucho que lo parezca.

Lo mismo vale para claves privadas, claves públicas y claves precompartidas, ya que las tres son de 32 bytes. Lo que lleva directamente a la trampa de la última sección.

Causa 1: un salto de línea final invisible

La causa individual más frecuente, y viene de un comando que parece del todo razonable:

PRIVATE_KEY=$(cat privatekey)

cat devuelve el archivo incluido su salto de línea final, y aquí la sustitución de comandos sí lo elimina, pero el mismo valor escrito en una configuración con un heredoc o una macro del editor a menudo lo conserva. Escrito en wg0.conf, obtienes una clave seguida de un carácter sobrante y un valor de 45 bytes donde se exigían 44.

Elimínalo de forma explícita en lugar de confiar en la suerte:

tr -d '\n' < privatekey

Causa 2: la clave partida en dos líneas

Copiar una clave desde una ventana de terminal estrecha, un correo o un cliente de chat puede insertar un salto de línea en medio. En el archivo de configuración el valor termina ahora tras unos 30 y pico caracteres, y el resto queda en su propia línea huérfana.

Búscala con una comprobación de longitud por línea en lugar de leer:

awk -F' = ' '/Key/ {print $1, length($2)}' /etc/wireguard/wg0.conf

Cada línea de clave debe mostrar 44. Cualquier otro valor de esa lista es el culpable, y esto funciona en una configuración con una docena de peers, donde revisar a ojo no funciona.

Una cinta métrica de papel blanco enrollada en forma de bucle sobre fondo negro, que muestra los números del 29 al 45 con finas graduaciones milimétricas entre ellos
Una cinta métrica de papel blanco enrollada en forma de bucle sobre fondo negro, que muestra los números del 29 al 45 con finas graduaciones milimétricas entre ellos

Causa 3: la clave vino acompañada

Una clave generada y mostrada en un solo paso puede arrastrar cosas a su alrededor. Dos versiones de esto:

  • Un prompt de la shell o el eco del comando, capturados junto con la salida al copiar desde el historial de desplazamiento de la terminal.
  • Un espacio inicial, que base64 no tolera y que ningún editor te va a mostrar.

Regenerar es más rápido que investigar cuando se trata de una clave nueva:

wg genkey > privatekey
chmod 600 privatekey
wg pubkey < privatekey > publickey

Redirigir a un archivo en lugar de leerla de la pantalla elimina toda esta categoría de problemas, y el chmod importa porque una clave privada legible por todos es un problema en sí misma.

Si todavía estás escribiendo la configuración, puedes prescindir de la terminal para las claves. Nuestro generador de configuración WireGuard gratuito crea los pares de claves en tu navegador (Curve25519, nada se envía a un servidor) y los escribe directamente en el [Interface] del servidor, sus bloques [Peer] y un archivo de cliente por dispositivo. Ninguna clave pasa por un portapapeles, una línea de terminal partida o un prompt de la shell por el camino, y cada clave que escribe tiene exactamente 44 caracteres: la comprobación awk de arriba muestra 44 en cada línea de su salida. El generador es gratuito hasta 10 dispositivos; a partir de ahí, WireGuard Pro (nuestro propio producto, 9 EUR en un único pago, sin suscripción) sube el límite a 250 y añade un ZIP con cada .conf de cliente y su código QR en PNG, práctico para configurar una oficina o una familia entera de una vez.

Causa 4: el tipo de clave correcto en el campo equivocado

Esta no produce el error, y precisamente por eso tiene su sitio aquí. Una clave pública también tiene 44 caracteres base64, así que ponerla en el campo PrivateKey se analiza perfectamente y falla en silencio para siempre. Ningún mensaje, ningún rechazo, solo un handshake que nunca ocurre.

La comprobación consiste en derivar en lugar de comparar:

wg pubkey < privatekey

Si la salida es igual al valor de tu campo PrivateKey, has puesto ahí una clave pública. Una clave privada pasada por wg pubkey te da algo distinto de sí misma; una clave pública pasada por él da basura o un error, nunca el valor del que partiste.

Una auditoría de una línea de todas las claves de una configuración

En lugar de probarlas una por una:

grep -oP '(?<= = )[A-Za-z0-9+/]{40,50}=' /etc/wireguard/wg0.conf | while read k; do
  printf '%s %s\n' "$(printf %s "$k" | wc -c)" "$k"
done

Cada línea debe empezar por 44. Un número distinto de 44 es una clave rota, y la has encontrado sin leer un solo carácter de base64.

Para tener a mano los comandos de claves (wg genkey, wg pubkey < private.key para comprobar que una clave privada corresponde a la pública que pegaste, wg genpsk, wg show wg0 latest-handshakes), nuestra WireGuard Cheat Sheet gratuita los reúne en una sola página A4 imprimible con las directivas de configuración y las tablas de MTU y puertos. Paga lo que quieras, se aceptan 0 USD. Descargar la cheat sheet.

Dónde aparece esto después

Corregir el formato te permite superar el análisis y entrar en la siguiente clase de problema: un túnel que se levanta y no hace nada. Una clave bien formada pero que no es la que espera el otro extremo produce un fallo totalmente distinto, tratado en el error required key not available.

Conviene distinguir de este dos casos cercanos. La clave precompartida es una tercera clave con la misma forma de 44 caracteres pero reglas simétricas, así que es fácil colocarla mal: consulta la guía de la clave precompartida. Y la misma clave instalada en dos dispositivos se analiza sin problema y falla de una forma que parece aleatoria, una historia aparte en dos dispositivos, una clave (en inglés).

Si escribes configuraciones a mano con la frecuencia suficiente como para toparte con esto una y otra vez, las plantillas de plantillas de configuración WireGuard eliminan la mayor parte de la transcripción. Si estás montando el propio servidor desde cero, empieza con un VPS KVM con su propia IPv4 pública, donde wg-quick se ejecuta sobre un kernel que controlas: un Contabo Cloud VPS (enlace de afiliado) cuesta 5.50 € al mes con un compromiso de 24 meses (consultado el 17 de octubre de 2026), y Ultahost VPS Basic (enlace de afiliado) cuesta 5.52 $ al mes con un compromiso de 24 meses, con 1 GB de RAM y garantía de devolución de 30 días (consultado el 21 de octubre de 2026).

★ Datacenter Núremberg GDPR · ✓ IPv4 dedicada incluida · puerto de 200 Mbit/s

Aloja tu VPN en tu propio VPS → ContaboAcceso root completo · IPv4 pública · elige tu región→

Preguntas frecuentes

¿Qué longitud debe tener una clave WireGuard?
Una clave son 32 bytes de datos en bruto, que en base64 dan exactamente 44 caracteres, el último de los cuales es un signo igual que sirve de relleno. Cualquier cosa más corta, más larga o sin ese signo igual final se rechaza antes de intentar el túnel.
¿Por qué mi clave parece correcta y aun así la rechaza?
Porque el defecto suele ser un espacio en blanco que no ves. Una clave capturada con sustitución de comandos conserva su salto de línea final, una clave pegada desde una terminal con ajuste de línea recoge un salto en medio, y ambas se ven en pantalla idénticas a una clave correcta.
¿Puedo usar una clave pública donde va una clave privada?
El archivo se analizará sin problema, porque ambas son 44 caracteres base64 y estructuralmente indistinguibles. Simplemente nunca hará handshake, lo que convierte esta en la peor versión del error: ningún mensaje, solo un túnel que permanece en silencio.
¿El error me dice qué clave está mal?
No de forma fiable. wg indica la línea en la que se atascó en algunas versiones y solo el fallo general en otras, así que en una configuración con varios peers lo práctico es medir cada clave con un bucle de una línea en lugar de revisarlas a ojo.
¿Cómo compruebo una clave sin revisarla a ojo?
Pásala por wc -c y espera 45 para una clave con su salto de línea, o 44 sin él. Mejor aún, pásala a wg pubkey: una clave privada válida produce una clave pública, y una inválida produce el mismo error de longitud, lo que convierte la comprobación en un sí o un no.