WireGuard spune că lungimea cheii private este greșită: ce facem acum?
O cheie de 32 de baiți în base64 are 44 de caractere. Decideți dacă textul este deteriorat sau identitatea este greșită înainte de a regenera ceva.
Mesajul spune că cheia privată are o lungime greșită, iar formularea indică mai întâi codificarea și abia apoi criptografia. Cheile WireGuard codează 32 de baiți în base64, ceea ce dă 44 de caractere inclusiv o umplutură finală, așa că o valoare de altă dimensiune nu este o cheie oricât de aleatorie ar părea. Umplerea șirului până când analizatorul îl acceptă produce o valoare bine formată pe care niciun partener nu o va recunoaște vreodată.
În spatele acestei erori se ascund două sarcini diferite: repararea textului unei chei valide și înlocuirea unei identități pe care nu o mai dețineți. Au consecințe diferite, iar una dintre ele invalidează celălalt capăt.
Ce așteaptă analizatorul
O cheie WireGuard este 32 de baiți de material de cheie în base64 cu umplutură standard, ceea ce dă un șir fix de 44 de caractere. Instrumentele resping tot ce nu se decodează exact în 32 de baiți, pentru că curba subiacentă ia un scalar de 32 de baiți și nimic altceva. Valorile publice și private folosesc aceeași codificare, așa că analizatorul nu poate afla doar din format pe care dintre ele ați lipit-o. Această ambiguitate provoacă jumătate din confuzia din jurul acestei erori.
wg genkey | tee private.key | wg pubkey > public.key
base64 -d private.key | wc -c
wc -c private.key
wg show wg0 public-key
Dacă valoarea dumneavoastră se decodează în 32 de baiți, lungimea este corectă și reclamația vine din alt loc al fișierului. Dacă se decodează în ceva mai scurt, aveți material trunchiat, nu o problemă de formatare.
Deteriorare de formatare sau material greșit?
Deteriorările de formatare se adună la margini: ghilimele adăugate de un shell, o etichetă precum private_key copiată împreună cu valoarea, o întrerupere de rând inserată de un client de chat sau un spațiu final care a supraviețuit lipirii. Fiecare dintre aceste modificări schimbă șirul fără a schimba octeții, așa că eliminarea ei restaurează identitatea originală. Comparați fișierul cu registrul de provizionare caracter cu caracter în loc să eliminați punctuația până când analizatorul tace.
Materialul greșit este o altă situație. O parolă, o cheie de certificat sau o valoare publică pot părea plauzibile și se pot decoda la dimensiunea greșită. Nicio curățare nu le transformă pe oricare dintre ele în scalarul așteptat de partener. Acel caz are nevoie de o identitate nouă, nu de o editare.
O cheie publică în câmpul privat
Cea mai frecventă confuzie este o valoare publică lipită în câmpul privat, sau invers. Ambele sunt base64 valide de 32 de baiți, așa că verificarea lungimii trece, iar strângerea de mână eșuează mai târziu fără un mesaj util. O cheie privată este scalarul care o produce pe cea publică, așa că puteți lămuri problema derivând valoarea publică și comparând-o cu ceea ce autorizează partenerul. Când valoarea derivată nu se potrivește cu registrul, aveți identitatea greșită, nu o greșeală de tastare.
Înlocuirea cheii private a clientului fără actualizarea cheii publice autorizate la celălalt capăt recreează aceeași nepotrivire, cu confuzia suplimentară că fișierul clientului pare acum coerent cu sine. Schimbați ambele capete într-o singură operațiune, altfel următoarea persoană va depana jumătatea greșită.
Reparați profilul, apoi demonstrați strângerea de mână
După ce cheia se decodează la dimensiunea corectă și corespunde perechii autorizate, rămân profilul și ruta. Comenzile de mai jos generează o pereche nouă când este nevoie, verifică dimensiunea decodată a unei chei existente și citesc valoarea publică pe care interfața o folosește efectiv. Nu lipiți niciodată o valoare privată într-un tichet sau pe un site de decodare.
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
Verificarea dimensiunii răspunde dacă materialul are formă de cheie, iar interogarea rutei răspunde dacă un pachet ar ajunge vreodată la interfață. O linie de strângere de mână care rămâne goală după ce ambele verificări trec mută diagnosticul către punctul final al partenerului și adresele permise. Citiți cheia publică a interfeței față de registrul de provizionare încă o dată, pentru că un profil salvat învechit poate părea corect în timp ce cel activ diferă].
Notați ce valoare ați înlocuit și unde se află copia autorizată. Următoarea persoană care atinge acest partener trebuie să știe care capăt s-a schimbat.