Privésleutel hier, publieke sleutel daar: WireGuard-sleutels
Je privésleutel blijft op je apparaat; de peer-regel bevat de publieke sleutel van de andere kant. Deel alleen de publieke helft, en geef elk apparaat zijn eigen identiteit.
De meeste handmatig gebouwde WireGuard-fouten komen neer op welke sleutel waar terechtkwam. Het interface-gedeelte bevat de privésleutel van het apparaat dat je configureert, terwijl een peer-gedeelte de publieke sleutel van de machine aan de andere kant bevat. Die helften verwisselen, of de verkeerde plakken, levert een handshake op die nooit voltooit en een log dat nooit een sleutel noemt. Werk de vier controles hieronder op volgorde af voordat je AllowedIPs of DNS aanraakt.
Twee sleutels, twee richtingen
Een privésleutel hoort bij precies één apparaat en blijft in het interface-gedeelte van dat apparaat. De publieke helft is wat elke andere peer nodig heeft om het apparaat te herkennen, en de tooling leidt die af in plaats van hem te verzinnen. Op de server verschijnt de publieke sleutel van jouw apparaat als peer-regel; op jouw apparaat vervult de publieke sleutel van de server die rol. Een configuratie hardop in die termen lezen vangt de meeste verwisselingen voordat ze een handshake bereiken.
Het commando wg print wat de lokale interface werkelijk gebruikt, inclusief beide publieke sleutels. Daarmee is het de snelste manier om een configuratiefout van een verbindingsprobleem te scheiden:
wg show
wg show interfaces
De eerste uitvoer somt elke peer op met zijn publieke sleutel, het laatst gebruikte eindpunt en de leeftijd van zijn laatste handshake. Een handshake-leeftijd van nooit aan de ene kant en een recente aan de andere kant wijst op een sleutel die slechts één kant accepteerde. Het tweede commando noemt de interfaces die je verder kunt onderzoeken.
Wat je deelt en wat je nooit deelt
Een publieke sleutel is bedoeld om overgedragen te worden, hoewel hij nog steeds een apparaatrelatie identificeert, daarom verschilt het sturen naar de beheerder die erom vroeg van het publiceren ervan. Een privésleutel verlaat nooit het apparaat dat hem genereerde. Een geëxporteerd profiel of een QR-code bevat de hele configuratie inclusief die privésleutel, dus geen van beide is veilig om door te geven, en de tekst in een afbeelding verbergen verandert niets. Vooraf gedeelde sleutels zijn optioneel en even geheim, en beide uiteinden moeten dezelfde waarde dragen, anders stopt de handshake bij die stap.
Nog een onderscheid is de moeite waard om ronduit te zeggen: een eindpunt is een adres en een poort, nooit een sleutel. Een publieke sleutel in het eindpuntveld plakken, of een adres in een sleutelveld, levert een profiel op dat wordt geparseerd en daarna niets doet. De tooling vangt dat niet, omdat beide velden alleen strings zijn. De WireGuard-snelstart toont de genereer-en-leid-af-keten op één regel.
Eén apparaat, één peer-regel
Waar de dienst het toestaat, hoort elk apparaat zijn eigen peer-identiteit te dragen. Het volledige profiel van een laptop op een telefoon plakken vertroebelt welk apparaat die identiteit op de server heeft en maakt het intrekken van één verloren toestel moeilijker. Als een privésleutel uitlekt, verwijder dan de oude peer-autorisatie op de server en zorg voor een vervanging. Het lokale bestand verwijderen haalt de regel op de server niet weg, en een nieuwe clientsleutel helpt niemand tot de server de publieke helft kent.
Houd de koppeling van apparaat naar publieke sleutel naast de adressenlijst. Die lijst maakt van een intrekking een taak van twee minuten in plaats van een hele middag.
Wat na de handshake nog steeds mislukt
Sleutelparen identificeren peers; ze bepalen geen netwerkgedrag. AllowedIPs koppelt adresbereiken aan een peer, en de routes eromheen beheert de client of het instelgereedschap. Het symptoom zegt meestal welke laag er daarna open moet:
| What you see | Which key problem it usually means | Where to look first |
|---|---|---|
| Handshake age stays at never on both ends | Peer public key missing, or an endpoint pointing at nothing | wg show, then the endpoint value |
| Handshake completes on one side only | The two ends hold different public keys for each other | wg show on both hosts |
| Handshake works, then no traffic | AllowedIPs or routes rather than keys | wg show and the route table |
| Worked until a key was regenerated | The peer entry still holds the old public key | Compare both public keys, then update the peer |
DNS kan mislukken nadat beide peers zich correct hebben geauthenticeerd, en een toepassing kan mislukken terwijl de tunnel zelf gezond is, dus een werkende handshake is niet het einde van de diagnose. Sleutels zeggen ook niets over de logpraktijk van een operator of over of een website je account herkent, en die vragen horen elders. Ga naar de netwerklagen zodra de vier controles slagen, want een ontbrekende sleutel is geen vermomd routeringsprobleem.