Der vises en meddelelse om systemd-tty-ask-password-agent i terminalen, og tunnelen er ikke oppe. Den fristende læsning er, at VPN'et afviste en adgangskode, og at noget nu venter på en rettelse. Det er mere præcist at sige, at en tjeneste har bedt systemd om interaktiv input, og at anmodningen ikke er besvaret endnu. Hvilken tjeneste der spurgte, og hvilken hemmelighed den vil have, er to spørgsmål, du kan afgøre, før du skriver noget.

To betingelser afgør, hvem der bør svare

Den første betingelse er, om du startede denne instans med vilje. En anmodning, der følger en handling, du har udført, er din at svare på, og en, der dukker op uden en tilsvarende handling, tilhører noget andet. Den anden er, om hemmeligheden er kontogodkendelse eller nøglebeskyttelse, fordi de bor forskellige steder og rejser ad forskellige kodestier. Begge svar er synlige i journalen, hvis du ser, før du handler.

Når begge svar er klare, er beslutningen enkel: svar gennem tjenestens egen understøttede anmodningssti. Når et af dem er uklart, er det rigtige træk at undersøge i stedet for at skrive en adgangskode ind i en anmodning, du ikke kan henføre.

Det er hele reglen, og den er værd at sige, før kommandoerne kommer. Alt nedenfor følger af den.

List anmodningen, før du skriver noget

Agenten kan optælle, hvad der er afventende, uden at svare på noget. sudo systemd-tty-ask-password-agent --list udskriver de udestående anmodninger, og det output er det bevis, du har brug for for at forbinde en anmodning med en enhed. Læs det, før du leverer en legitimation, og hold anmodningsbeskrivelser ude af enhver offentlig diagnostisk indsættelse.

Kobl listen sammen med den handling, du startede, og med den enhed, der ejer den. Hvis intet på listen passer til din handling, tilhører anmodningen, du så, en anden tjeneste og er ikke din at løse. Enhedsnavnet på listen er det eneste pålidelige bånd mellem en anmodning og en tjeneste.

Svar ikke på en anmodning, du ikke kan henføre. Prisen for at vente er en forsinkelse, mens prisen for at svare på den forkerte anmodning er en legitimation på det forkerte sted.

Hvilken hemmelighed har instansen faktisk brug for?

auth-user-pass handler om kontogodkendelse over for VPN-tjenesten, og uden en legitimationsfil er den dokumenterede adfærd at spørge på konsollen. askpass skaffer i stedet den adgangssætning, der låser beskyttet nøglemateriale op, og det gør den, før processen går i baggrunden. Det er forskellige hemmeligheder med forskellig levetid.

Filformaterne er også forskellige. Kontoformen forventer en brugernavnslinje og en adgangskodelinje, mens nøgleadgangssætningsfilen læser den første linje som sin adgangskode. At kopiere en opskrift på en legitimationsfil fra den anden rolle giver normalt endnu en anmodning i stedet for en løsning. En fil med den forkerte form er værre end ingen fil, fordi fejlen flytter til et sted, ingen overvåger.

Kontroller, hvilket direktiv instansen bruger, før du beslutter, hvad du vil skrive. Direktivets navn fortæller dig, hvilken hemmelighed anmodningen gælder.

Hvad --query gør, som --list ikke gør

--query behandler hver afventende anmodning på det kaldende terminal, hvilket er en meget bredere handling end at svare på én anmodning. Det er ikke en OpenVPN-vælger, og på en travl maskine kan den svare på anmodninger, der tilhører andre enheder. Ur-tilstand er endnu bredere, fordi den fortsætter med at håndtere anmodninger, efterhånden som de kommer.

Brug den snævreste mekanisme, der virker. For en enkelt tjeneste er den tjenestes egen anmodningsarbejdsgang snævrere end en global agent, og den holder svaret knyttet til den enhed, der spurgte.

At gøre en enkeltstående anmodning til en ubemandet global agent, fordi en meddelelse dukkede op én gang, er måden, hvorpå en midlertidig irritation bliver et permanent design. Den samme forsigtighed gælder for at deaktivere adgangskodenotifikationsenheder på hele værten.

Beslut, og registrér så valget

For en ubemandet udrulning skal du aftale legitimationskilden, filrettighederne og fornyelsesplanen med den, der ejer forbindelsen. En interaktiv anden faktor kan kræve en person eller en dedikeret tjenesteidentitet. At undertrykke anmodningen giver ikke den godkendelse, og at fjerne auth-user-pass ødelægger kun en tjeneste, der har brug for det.

Efter interaktionen skal du se på den samme instans efter dens næste hændelse og teste den private ressource. Hvis intet er afventende, skal du vende tilbage til instanstilstanden i stedet for at starte hver OpenVPN-enhed på værten.

Relaterede artikler