OpenVPN wartet auf eine systemd-Passwortabfrage: Sollten Sie sie beantworten?
Eine systemd-Passwortabfrage ist eine Anfrage eines Dienstes, kein Urteil des Gateways. Entscheiden Sie, welches Geheimnis verlangt wird und wer sie beantworten sollte.
Im Terminal erscheint eine Meldung zu systemd-tty-ask-password-agent, und der Tunnel steht nicht. Die verlockende Deutung ist, dass das VPN ein Passwort abgelehnt hat und nun etwas auf eine Korrektur wartet. Genauer gesagt hat ein Dienst systemd um interaktive Eingabe gebeten, und die Anfrage ist noch nicht beantwortet. Welcher Dienst gefragt hat und welches Geheimnis er will, sind zwei Fragen, die Sie klären können, bevor Sie etwas tippen.
Zwei Bedingungen entscheiden, wer antworten sollte
Die erste Bedingung ist, ob Sie diese Instanz bewusst gestartet haben. Eine Anfrage, die auf eine von Ihnen ausgeführte Aktion folgt, gehört Ihnen, und eine, die ohne passende Aktion erscheint, gehört zu etwas anderem. Die zweite ist, ob das Geheimnis Kontauthentifizierung oder Schlüsselschutz ist, denn beides lebt an verschiedenen Orten und reist über verschiedene Codepfade. Beide Antworten sind im Journal sichtbar, wenn Sie vor dem Handeln nachsehen.
Sind beide Antworten klar, ist die Entscheidung einfach: antworten Sie über den eigenen unterstützten Abfrageweg des Dienstes. Ist eine davon unklar, ist der richtige Schritt zu untersuchen, statt ein Passwort in eine Abfrage zu tippen, die Sie nicht zuordnen können.
Das ist die ganze Regel, und sie ist es wert, vor den Befehlen genannt zu werden. Alles Folgende ergibt sich daraus.
Listen Sie die Anfrage auf, bevor Sie etwas tippen
Der Agent kann auflisten, was aussteht, ohne etwas zu beantworten. sudo systemd-tty-ask-password-agent --list gibt die offenen Anfragen aus, und diese Ausgabe ist der Beweis, den Sie brauchen, um eine Abfrage einer Unit zuzuordnen. Lesen Sie sie, bevor Sie Anmeldedaten liefern, und halten Sie Anfragebeschreibungen aus jedem öffentlichen Diagnose-Copy-and-paste heraus.
Gleichen Sie die Liste mit dem gestarteten Vorgang und der Unit ab, die ihn besitzt. Passt nichts in der Liste zu Ihrer Aktion, gehört die gesehene Abfrage zu einem anderen Dienst und ist nicht Ihre zu lösen. Der Unit-Name in der Liste ist die einzige verlässliche Verbindung zwischen einer Abfrage und einem Dienst.
Beantworten Sie keine Anfrage, die Sie nicht zuordnen können. Der Preis des Wartens ist eine Verzögerung, der Preis der Antwort auf die falsche Abfrage sind Anmeldedaten am falschen Ort.
Welches Geheimnis braucht die Instanz eigentlich?
auth-user-pass betrifft die Kontauthentifizierung gegenüber dem VPN-Dienst, und ohne Anmeldedatendatei ist das dokumentierte Verhalten, auf der Konsole zu fragen. askpass dagegen holt die Passphrase, die geschütztes Schlüsselmaterial entsperrt, und tut das, bevor der Prozess in den Hintergrund wechselt. Das sind verschiedene Geheimnisse mit unterschiedlicher Lebensdauer.
Auch die Dateiformate unterscheiden sich. Die Kontoform erwartet eine Benutzernamenzeile und eine Passwortzeile, während die Schlüssel-Passphrasendatei die erste Zeile als ihr Passwort liest. Ein Anmeldedatendatei-Rezept aus der anderen Rolle zu übernehmen erzeugt meist eine weitere Abfrage statt einer Lösung. Eine Datei mit falscher Form ist schlimmer als keine Datei, weil der Fehler an einen Ort wandert, den niemand beobachtet.
Prüfen Sie, welche Direktive die Instanz verwendet, bevor Sie entscheiden, was zu tippen ist. Der Name der Direktive sagt Ihnen, für welches Geheimnis die Abfrage gilt.
Was --query tut, was --list nicht tut
--query verarbeitet jede ausstehende Anfrage am aufrufenden Terminal, was eine viel breitere Aktion ist als die Beantwortung einer Abfrage. Es ist kein OpenVPN-Selektor, und auf einer ausgelasteten Maschine kann es Anfragen beantworten, die zu anderen Units gehören. Der Beobachtungsmodus ist noch breiter, weil er Anfragen weiter bearbeitet, sobald sie eintreffen.
Verwenden Sie den engsten Mechanismus, der funktioniert. Für einen einzelnen Dienst ist der eigene Abfrageablauf dieses Dienstes enger als ein globaler Agent, und er hält die Antwort an die Unit gebunden, die gefragt hat.
Aus einer einmaligen Anfrage einen unbeaufsichtigten globalen Agenten zu machen, weil einmal ein Hinweis erschien, ist der Weg, auf dem ein vorübergehendes Ärgernis zu einem dauerhaften Design wird. Dieselbe Vorsicht gilt für das Deaktivieren von Passwortbenachrichtigungs-Units auf dem ganzen Host.
Entscheiden, dann die Wahl festhalten
Für einen unbeaufsichtigten Betrieb stimmen Sie Anmeldedatenquelle, Dateiberechtigungen und Erneuerungsplan mit demjenigen ab, dem die Verbindung gehört. Ein interaktiver zweiter Faktor kann eine Person oder eine eigene Dienstidentität brauchen. Die Abfrage zu unterdrücken erzeugt diese Authentifizierung nicht, und auth-user-pass zu entfernen bricht nur einen Dienst, der es braucht.
Sehen Sie nach der Interaktion bei derselben Instanz nach ihrem nächsten Ereignis und testen Sie die private Ressource. Ist nichts ausstehend, kehren Sie zum Instanzzustand zurück, statt jede OpenVPN-Unit auf dem Host zu starten.