Poruka kaže da privatni ključ ima pogrešnu dužinu, a ta formulacija najprije upućuje na kodiranje, a tek potom na kriptografiju. WireGuard ključevi kodiraju 32 bajta u base64, što daje 44 znaka uključujući završnu dopunu, pa vrijednost druge veličine nije ključ ma kako slučajno izgledala. Dopunjavanje niza dok ga parser ne prihvati stvara ispravno oblikovanu vrijednost koju nijedan partner nikada neće prepoznati.

Iza ove se pogreške kriju dva različita posla: popravljanje teksta valjanog ključa i zamjena identiteta koji više ne posjedujete. Imaju različite posljedice, a jedna od njih poništava drugi kraj.

Što parser očekuje

WireGuard ključ je 32 bajta ključnog materijala u base64 sa standardnom dopunom, što daje fiksni niz od 44 znaka. Alati odbijaju sve što se ne dekodira točno u 32 bajta, jer temeljna krivulja uzima 32-bajtni skalar i ništa drugo. Javne i privatne vrijednosti koriste isto kodiranje, pa parser samo iz formata ne može znati koju ste od njih zalijepili. Ta dvosmislenost uzrokuje polovicu zabune oko ove pogreške.

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

Ako se vaša vrijednost dekodira u 32 bajta, dužina je u redu i žalba dolazi s nekog drugog mjesta u datoteci. Ako se dekodira u nešto kraće, imate skraćeni materijal, a ne problem s formatiranjem.

Oštećeno oblikovanje ili pogrešan materijal?

Oštećenja oblikovanja skupljaju se na rubovima: navodnici koje je dodao shell, oznaka poput private_key kopirana zajedno s vrijednošću, prijelom retka koji je umetnuo chat klijent ili završni razmak koji je preživio lijepljenje. Svaka od tih promjena mijenja niz bez promjene bajtova, pa uklanjanje vraća izvorni identitet. Usporedite datoteku s evidencijom dodjele znak po znak umjesto da uklanjate interpunkciju dok parser ne utihne.

Pogrešan materijal je druga situacija. Lozinka, ključ certifikata ili javna vrijednost mogu izgledati uvjerljivo i dekodirati se u pogrešnu veličinu. Nijedno čišćenje ne pretvara ni jednu od njih u skalar koji partner očekuje. Taj slučaj treba novi identitet, a ne uređivanje.

Javni ključ u privatnom polju

Najčešća je zabuna javna vrijednost zalijepljena u privatno polje, ili obrnuto. Obje su valjani base64 od 32 bajta, pa provjera dužine prolazi, a rukovanje kasnije ne uspijeva bez korisne poruke. Privatni ključ je skalar koji proizvodi javni, pa to možete razriješiti izvođenjem javne vrijednosti i usporedbom s onim što partner autorizira. Kad se izvedena vrijednost ne poklapa s evidencijom, držite pogrešan identitet, a ne tipfeler.

Zamjena klijentova privatnog ključa bez ažuriranja autoriziranog javnog ključa na drugom kraju ponovno stvara istu neusklađenost, uz dodatnu zabunu da klijentova datoteka sada izgleda samodosljedno. Promijenite oba kraja u jednoj operaciji, inače će sljedeća osoba otklanjati pogrešnu polovicu.

Popravite profil, zatim dokažite rukovanje

Kad se ključ dekodira u pravu veličinu i odgovara autoriziranom paru, preostaje profil i putanja. Naredbe u nastavku stvaraju svježi par kad je potreban, provjeravaju dekodiranu veličinu postojećeg ključa i čitaju javnu vrijednost koju sučelje stvarno koristi. Nikada ne lijepite privatnu vrijednost u tiket ni na stranicu za dekodiranje.

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

Provjera veličine odgovara ima li materijal oblik ključa, a upit o ruti odgovara bi li paket ikada stigao do sučelja. Redak rukovanja koji ostane prazan nakon obje provjere premješta dijagnozu na partnerovu krajnju točku i dopuštene adrese. Pročitajte javni ključ sučelja prema evidenciji dodjele još jednom, jer zastario spremljeni profil može izgledati ispravno dok se aktivni razlikuje].

Zabilježite koju ste vrijednost zamijenili i gdje se nalazi autorizirana kopija. Sljedeća osoba koja dira ovog partnera mora znati koji se kraj promijenio.

Povezani članci