Ein WireGuard-Schlüsselpaar lokal erzeugen: Befehle und Vorsicht
Zwei Befehle erzeugen das Paar; die Arbeit liegt in der umask, dem Dateispeicherort und im Wissen, dass nur die öffentliche Hälfte zum Peer geht. Ein lokaler Durchgang.
Zwei Befehle erzeugen ein WireGuard-Schlüsselpaar, und beide sind mit den Standardwerkzeugen vorhanden, sodass diese Aufgabe keine Website braucht, die anbietet, einen Schlüssel für Sie zu erzeugen. Was schiefgeht, ist nie die Kurvenarithmetik; es sind die Berechtigungsbits, der Ort, an dem die Datei landet, und was danach an das andere Ende geschickt wird. Die folgende Abfolge beginnt in einem leeren Verzeichnis und endet bei einem Peer, der Verkehr trägt. Lesen Sie sie einmal, bevor Sie sie ausführen, denn die erste Zeile zählt nur, wenn die nächste in derselben Shell läuft.
Das Paar in einer Shell erzeugen
Der dokumentierte Ablauf beschränkt die Dateierzeugung, bevor der private Wert existiert, und leitet dann den öffentlichen Wert daraus ab. Alle drei Zeilen gehören zusammen in eine einzige Shell-Sitzung:
umask 077 # applies to files created next, so keep the next line in this shell
wg genkey | tee privatekey | wg pubkey > publickey
wg pubkey < privatekey # re-derive and compare with publickey
wg genkey schreibt einen 32-Byte privaten Curve25519-Schlüssel in base64; wg pubkey liest ihn und leitet den passenden öffentlichen Schlüssel ab, und tee speichert den privaten Wert, während es ihn durch die Pipe weiterreicht. Diese Reihenfolge ist der Grund, warum die Berechtigungszeile zuerst kommt und warum das Einfügen der Pipeline in ein zweites Terminal sie still verliert. Die Dateinamen sind illustrativ, und entscheidend ist, dass beide Dateien irgendwo landen, was das besitzende Gerät kontrolliert. Wenn eine private Datei bereits mit Standardberechtigungen existiert, repariert chmod 600 privatekey die aktuelle Datei und tut nichts gegen früher erstellte Kopien.
Die private Hälfte auf einem Gerät halten
Der private Wert gehört auf die Maschine, die die Identität besitzen wird, in ein Verzeichnis, das diese Maschine schützt und das ihre Sicherungen als Anmeldedatum behandeln. Er gehört nicht in einen freigegebenen Ordner, nicht in eine Nachricht an sich selbst und nicht in einen Ausschnitt, der einem Support-Ticket beiliegt, und eine eingebettete Kopie macht die Konfigurationsdatei genauso sensibel wie den Schlüssel. Ein Schlüssel, der an drei Orten gelebt hat, lässt sich später nicht mehr durchdenken, und das ist der praktische Grund, ihn an einem zu halten.
Eine ausgemusterte Datei bewusst zu vernichten gehört zur selben Gewohnheit. Sie in einem Download-Ordner zu lassen, bis jemand es bemerkt, nicht.
Was der Betreiber des Peers von Ihnen braucht
Die andere Seite braucht den öffentlichen Wert und die Adressanordnung, die ihr Betreiber gewählt hat, sonst nichts. Senden Sie diese öffentliche Zeichenkette über den Kanal, den der Betreiber erwartet, und bestätigen Sie dann, welchem Peer-Eintrag sie zugeordnet wurde, bevor jemand sie testet, denn ein korrekter Schlüssel im falschen Abschnitt scheitert auf eine Weise, die wie ein Schlüsselproblem aussieht. Senden Sie ihn als eine einzige ungebrochene Zeile, denn ein über zwei Zeilen gebrochener Schlüssel wird ohne Beschwerde in eine Konfigurationsdatei eingefügt und passt danach nie.
Einen Schlüssel zu erzeugen autorisiert für sich genommen nichts. Der Peer muss so konfiguriert werden, dass er ihn akzeptiert, und der Konfigurationsschritt gehört demjenigen, der dieses Ende betreibt.
Das Paar mit einem echten Austausch testen
Ein Schlüsselpaar identifiziert ein Ende eines Tunnels; es erzeugt keine Route, keinen Resolver-Eintrag, keine Weiterleitungsregel und keine Firewall-Freigabe. Nachdem der Peer bereitgestellt ist, testen Sie den Austausch statt die Datei: einen Handshake, der in wg show erscheint, eine Adresse, die innerhalb des Tunnels antwortet, und eine Anwendungsanfrage, die von der Route abhängt. Diese Dreiergruppe trennt einen falschen Schlüssel von einem richtigen Schlüssel und einem fehlenden Pfad.
Halten Sie eine Identität pro Gerät, wenn die Bereitstellung es erlaubt, damit eine verlorene Einheit allein widerrufen werden kann, statt alle zum Neuschlüsseln zu zwingen. Diese Entscheidung ist auch das, was das Ersetzungsverfahren unten sicher ausführbar macht.
Einen Schlüssel ohne Lücke ersetzen
Erzeugen Sie den Ersatz auf dem Gerät, fügen Sie den neuen öffentlichen Schlüssel als zusätzlichen Peer hinzu, bestätigen Sie, dass er Verkehr trägt, und entfernen Sie erst dann den alten. In dieser Reihenfolge vorzugehen bedeutet, dass der Tunnel nie einen Moment ohne gültige Identität hat, und das Zurückrollen ist einfach das Löschen des gerade hinzugefügten Eintrags.
Behalten Sie die ersetzte private Datei, bis der neue Peer bestätigt ist, und vernichten Sie sie dann absichtlich. Der WireGuard-Schnellstart ist die Referenz für die Befehle selbst, und er ist kurz genug, um ihn vor dem Start vollständig zu lesen.