El missatge diu que la clau privada té una longitud incorrecta, i aquesta formulació apunta primer a la codificació i només després a la criptografia. Les claus de WireGuard codifiquen 32 bytes en base64, cosa que dona 44 caràcters inclòs un farciment final, així que un valor d’una altra mida no és una clau per molt aleatori que sembli. Emplenar la cadena fins que l’analitzador l’accepti produeix un valor ben format que cap parell no reconeixerà mai.

Darrere d’aquest error s’amaguen dues tasques diferents: reparar el text d’una clau vàlida i substituir una identitat que ja no teniu. Tenen conseqüències diferents, i una d’elles invalida l’altre extrem.

Què espera l’analitzador

Una clau de WireGuard són 32 bytes de material de clau en base64 amb farciment estàndard, cosa que dona una cadena fixa de 44 caràcters. Les eines rebutgen tot el que no es descodifica exactament en 32 bytes, perquè la corba subjacent pren un escalar de 32 bytes i res més. Els valors públics i privats fan servir la mateixa codificació, així que l’analitzador no pot saber només pel format quin dels dos hi heu enganxat. Aquesta ambigüitat causa la meitat de la confusió al voltant d’aquest error.

wg genkey | tee private.key | wg pubkey > public.key
base64 -d private.key | wc -c
wc -c private.key
wg show wg0 public-key

Si el vostre valor es descodifica en 32 bytes, la longitud és correcta i la queixa ve d’un altre lloc del fitxer. Si es descodifica en una cosa més curta, teniu material truncat i no un problema de format.

Mal de format o material equivocat?

Els mals de format s’acumulen a les vores: cometes afegides per un shell, una etiqueta com private_key copiada amb el valor, un salt de línia inserit per un client de xat o un espai final que va sobreviure en enganxar. Cadascun d’aquests canvis altera la cadena sense canviar els bytes, així que eliminar-lo restaura la identitat original. Compareu el fitxer amb el registre de subministrament caràcter a caràcter en lloc de treure puntuació fins que l’analitzador calli.

El material equivocat és una altra situació. Una contrasenya, una clau de certificat o un valor públic poden semblar plausibles i descodificar-se a la mida equivocada. Cap neteja no converteix cap d’ells en l’escalar que el parell espera. Aquest cas necessita una identitat nova, no una edició.

Una clau pública al camp privat

La confusió més habitual és un valor públic enganxat al camp privat, o bé al revés. Tots dos són base64 vàlids de 32 bytes, així que la comprovació de longitud passa i la encaixada de mans falla després sense un missatge útil. Una clau privada és l’escalar que produeix la pública, així que podeu resoldre-ho derivant el valor públic i comparant-lo amb el que autoritza el parell. Quan el valor derivat no coincideix amb el registre, teniu la identitat equivocada i no una errada d’escriptura.

Substituir la clau privada del client sense actualitzar la clau pública autoritzada a l’altre extrem recrea el mateix desajust, amb la confusió afegida que el fitxer del mateix client ara sembla coherent. Canvieu tots dos extrems en una sola operació, o la següent persona depurarà la meitat equivocada.

Repareu el perfil i després demostreu l’encaixada de mans

Quan la clau es descodifica a la mida correcta i coincideix amb la parella autoritzada, la feina que queda és el perfil i la ruta. Les ordres següents generen una parella nova quan cal, verifiquen la mida descodificada d’una clau existent i llegeixen el valor públic que la interfície fa servir realment. No enganxeu mai un valor privat en un tiquet ni en un lloc de descodificació.

wg genkey | tee new.key | wg pubkey > new.pub
base64 -d private.key | wc -c
ip route get 10.60.9.5
wg show wg0 latest-handshakes

La comprovació de mida respon si el material té forma de clau, i la consulta de ruta respon si un paquet arribaria mai a la interfície. Una línia d’encaixada de mans que queda buida després que passin les dues comprovacions desplaça el diagnòstic cap al punt final del parell i les adreces permeses. Llegiu la clau pública de la interfície contra el registre de subministrament una última vegada, perquè un perfil desat obsolet pot semblar correcte mentre l’actiu difereix].

Anoteu quin valor heu substituït i on és la còpia autoritzada. Qui toqui aquest parell després ha de saber quin extrem ha canviat.

Articles relacionats