V terminálu se objeví zpráva o systemd-tty-ask-password-agent a tunel není navázán. Lákavé čtení je, že VPN odmítla heslo a něco teď čeká na opravu. Přesnější je říci, že služba požádala systemd o interaktivní vstup a že žádost zatím nebyla zodpovězena. Která služba se ptala a které tajemství chce, jsou dvě otázky, které můžete vyřešit dřív, než cokoli napíšete.

Kdo má odpovědět, rozhodují dvě podmínky

První podmínka je, zda jste tuto instanci spustili záměrně. Žádost, která následuje po vaší akci, je vaše k zodpovězení, a ta, která se objeví bez odpovídající akce, patří něčemu jinému. Druhá je, zda je tajemstvím ověření účtu, nebo ochrana klíče, protože to žije na různých místech a jde různými cestami kódu. Obě odpovědi jsou vidět v žurnálu, když se podíváte před jednáním.

Když jsou obě odpovědi jasné, rozhodnutí je jednoduché: odpovězte vlastní podporovanou cestou výzvy dané služby. Když je některá nejasná, správným krokem je vyšetřit, nikoli napsat heslo do výzvy, kterou nedokážete přiřadit.

To je celé pravidlo a stojí za to je vyslovit před příkazy. Vše níže z něj plyne.

Vypište žádost, než cokoli napíšete

Agent dokáže vypsat, co čeká, aniž by na cokoli odpověděl. sudo systemd-tty-ask-password-agent --list vypíše nevyřízené žádosti a tento výstup je důkaz, který potřebujete ke spojení výzvy s jednotkou. Přečtěte si ho, než poskytnete přihlašovací údaj, a popisy žádostí držte mimo každé veřejné diagnostické vložení.

Spojte výpis s operací, kterou jste zahájili, a s jednotkou, která ji vlastní. Pokud nic ve výpisu neodpovídá vaší akci, výzva, kterou jste viděli, patří jiné službě a není vaše k vyřešení. Název jednotky ve výpisu je jediné spolehlivé spojení mezi výzvou a službou.

Neodpovídejte na žádost, kterou nedokážete přiřadit. Cenou čekání je zpoždění, zatímco cenou odpovědi na špatnou výzvu je přihlašovací údaj na špatném místě.

Které tajemství instance skutečně potřebuje?

auth-user-pass se týká ověření účtu u služby VPN a bez souboru s přihlašovacími údaji je dokumentované chování zeptat se na konzoli. askpass naopak získá přístupovou frázi, která odemyká chráněný klíčový materiál, a učiní tak předtím, než se proces přepne do pozadí. To jsou různá tajemství s různou životností.

Liší se i formáty souborů. Forma pro účet očekává řádek s uživatelským jménem a řádek s heslem, zatímco soubor s přístupovou frází klíče čte první řádek jako své heslo. Zkopírování receptu na soubor s přihlašovacími údaji z druhé role obvykle vytvoří další výzvu místo řešení. Soubor se špatným tvarem je horší než žádný soubor, protože selhání se přesune na místo, které nikdo nesleduje.

Než se rozhodnete, co napsat, zkontrolujte, kterou direktivu instance používá. Název direktivy vám řekne, pro které tajemství výzva je.

Co dělá --query a co --list nedělá

--query zpracuje každou čekající žádost na volajícím terminálu, což je mnohem širší akce než odpověď na jednu výzvu. Není to přepínač OpenVPN a na vytíženém stroji může odpovědět na žádosti patřící jiným jednotkám. Režim sledování je ještě širší, protože dál zpracovává žádosti, jak přicházejí.

Použijte nejužší mechanismus, který funguje. Pro jedinou službu je vlastní postup výzvy této služby užší než globální agent a drží odpověď připojenou k jednotce, která se ptala.

Přeměnit jednorázovou žádost v neobsluhovaného globálního agenta jen proto, že se jednou objevilo oznámení, je způsob, jak se dočasná otravnost stane trvalým designem. Stejná obezřetnost platí pro vypnutí jednotek oznámení o heslu na celém hostiteli.

Rozhodněte a pak volbu zaznamenejte

U neobsluhovaného nasazení sladěte zdroj přihlašovacích údajů, oprávnění souboru a plán obnovy s tím, kdo vlastní připojení. Interaktivní druhý faktor může potřebovat člověka nebo vyhrazenou identitu služby. Potlačení výzvy tuto autentizaci nevytvoří a odstranění auth-user-pass jen rozbije službu, která ho potřebuje.

Po interakci se podívejte na stejnou instanci kvůli její další události a otestujte soukromý prostředek. Pokud nic nečeká, vraťte se ke stavu instance místo spouštění každé jednotky OpenVPN na hostiteli.

Související články