Povezava, ki deluje po prijavi in pred njo odpove, običajno pomeni, da poskus ob zagonu ni mogel pridobiti skrivnosti, ne pa da jo je strežnik zavrnil. Poverilnica obstaja; kontekst, ki jo zahteva, ne. Ta ena razlika prihrani nepotrebno ponastavitev gesla.

Sledi zahtevi: nekaj zažene povezavo, preden obstaja seja namizja, shramba skrivnosti, ki običajno odgovori, pa še ni odklenjena. Konteksta se ne strinjata o tem, kdo ima skrivnost, in profil zapiše, kateri od njiju naj bi jo zagotovil.

Kaj zagonska pot dejansko zahteva

Ob zagonu se NetworkManager zažene kot sistemska storitev brez uporabniške seje, brez sejnega D-Bus in brez odklenjenega zbirala ključev. Profil povezave je še vedno mogoče dvigniti, a le s skrivnostmi, do katerih storitev pride sama. Vse, kar ima v lasti agent skrivnosti, čaka, dokler se človek ne prijavi in agent ne pojavi. Storitev dela točno to, kar pravi njena konfiguracija; spremeniti je treba profil.

Odpoved je zapisana v povezavi, ne skrita v zbiralu ključev.

Branje zastavic skrivnosti na povezavi

Povezavo vprašaj, kaj pričakuje, ne kaj si zapomni namizje. Stolpec zastavic neposredno odgovori na vprašanje in preživi ponovne zagone v datoteki profila na disku.

Začni s seznamom profilov, nato potrdi, katera povezava je nastavljena, da se dvigne sama. Nato izpiši eno povezavo in preberi zastavice gesla:

nmcli -f NAME,UUID,TYPE,AUTOCONNECT connection show
nmcli connection show "Work VPN" | grep -i -E "password|secret|key"
journalctl -b -u NetworkManager --grep "secret"

Prvi ukaz potrdi, kateri profili obstajajo in ali je kateri nastavljen na samodejno povezavo, s čimer se poskus brez nadzora sploh začne. Drugi razkrije vrednosti zastavic, tretji pa pokaže storitev, ki se pritožuje, da noben agent ni odgovoril za dano skrivnost. Vrstica dnevnika, ki skrivnost imenuje last agenta, je cela diagnoza v enem stavku.

Flag valueWhere the secret livesBehaviour before login
0Stored in the connection profileAvailable to the system service
1Owned by a secret agentBlocks until the agent is unlocked
2Never storedPrompts on every activation
4Not requiredNever requested at all

Zakaj premik povezave v sistemsko območje spremeni odgovor

Povezavo v lasti uporabnika aktivira njegov agent, zato deluje brezhibno takoj, ko je namizje gor. Premik v sistemsko območje odstrani agenta s poti, zato se isti profil obnaša drugače brez spremembe niti ene vrstice konfiguracije VPN.

Ta premik je legitimna zasnova in prinaša zahtevo: skrivnost mora biti dosegljiva sistemski storitvi. Shranjevanje v profilu, zagotavljanje prek poverilnice v sistemskem območju ali sprejetje interaktivnega poziva ob pravem trenutku so vsi veljavni odgovori. Pustiti zastavico 1 in upati, ne.

Zasebni ključ z lastno geselsko frazo doda drugo plast. Tudi shranjeno geslo računa ne bo odklenilo ključa, ki zahteva geselsko frazo, zato pred kakršno koli spremembo preveri, katero skrivnost faza, ki odpove, dejansko zahteva.

Česa ne storiti in kaj storiti namesto tega

Narediti vsako datoteko s poverilnicami berljivo vsem ali izklopiti preverjanje pristnosti, da poziv ne bi bil potreben, zamenja neprijetnost ob zagonu za trajno izpostavljenost. Oboje tudi skrije odvisnost, namesto da bi jo rešilo, in naslednja posodobitev slike prinese isto odpoved.

Na tej stopnji uporabi mehanizem, ki ga tvoja distribucija dokumentira za aktivacijo brez nadzora, nato potrdi, da se zastavice profila ujemajo z njim. Preveri rezultat s čistega zagona, ne iz lupine, ki že ima agenta. Zapiši lastnika povezave, vir skrivnosti in stopnjo, ki mora delovati, da poznejša sprememba samodejnega zagona ne bi tiho vrnila odvisnosti od tega, da nekdo najprej odklene namizje. Dokumentacija je razlika med popravljeno storitvijo in tisto, ki se naslednje četrtletje znova pokvari.

Preizkusi s kontroliranega čistega zagona, ne z ročnega ponovnega poskusa po prijavi. Ponovni poskus uspe zaradi razloga, zaradi katerega je poskus ob zagonu spodletel, in to je natanko tisti dokaz, ki ga hiter test uniči.

Sorodni članki