Връзка, която работи след вход и се проваля преди него, обикновено означава, че опитът при зареждане не е успял да получи тайна, а не че сървърът я е отхвърлил. Идентификационните данни съществуват; контекстът, който ги иска, не. Това единствено разграничение спестява ненужно нулиране на парола.

Проследете заявката: нещо стартира връзката преди да съществува сесия на работния плот, а хранилището за тайни, което обикновено отговаря, още не е отключено. Двата контекста не се съгласяват кой притежава тайната и профилът записва кой от тях се очаква да я достави.

Какво всъщност иска пътят на зареждане

При зареждане NetworkManager стартира като системна услуга без потребителска сесия, без сесийна D-Bus и без отключен ключодържател. Профил на връзка все още може да бъде вдигнат, но само с тайни, до които услугата може да се добере сама. Всичко, притежавано от агент за тайни, изчаква, докато човек влезе и агентът се появи. Услугата прави точно това, което казва конфигурацията ѝ; профилът е нещото, което трябва да се промени.

Провалът е записан във връзката, а не скрит в ключодържател.

Четене на флаговете за тайни на връзка

Попитайте връзката какво очаква, а не какво помни работният плот. Колоната с флагове отговаря директно на въпроса и оцелява след рестартиране във файла на профила на диска.

Започнете със списъка на профилите, после потвърдете коя връзка е настроена да се вдига сама. След това извадете една връзка и прочетете флаговете за парола:

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"

Първата команда потвърждава кои профили съществуват и дали един е настроен на автоматично свързване, което е начинът, по който изобщо започва опит без надзор. Втората разкрива стойностите на флаговете, а третата показва услугата да се оплаква, че никой агент не е отговорил за дадена тайна. Ред в журнала, който назовава тайна като притежавана от агент, е цялата диагноза в едно изречение.

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

Защо преместването на връзката в системен обхват променя отговора

Връзка, притежавана от потребител, се активира под агента на този потребител, поради което работи безупречно, щом работният плот се вдигне. Преместването ѝ в системен обхват маха агента от пътя, така че същият профил се държи различно без нито един ред промяна в конфигурацията на VPN.

Това преместване е законен дизайн и носи изискване: тайната трябва да е достъпна за системната услуга. Съхраняването ѝ в профила, предоставянето ѝ чрез идентификационни данни със системен обхват или приемането на интерактивна заявка в подходящия момент са все валидни отговори. Оставянето на флаг 1 и надеждата — не.

Частен ключ със собствена парола добавя втори слой. Дори запазена парола на акаунт няма да отключи ключ, който иска парола, затова проверете коя точно тайна иска провалящият се етап, преди да промените нещо.

Какво да не правите и какво да правите вместо това

Правенето на всеки файл с идентификационни данни четим за всички или изключването на удостоверяването, за да не е нужна заявка, разменя неудобство при стартиране срещу постоянна експозиция. И двете също скриват зависимостта, вместо да я решат, и следващата актуализация на образа връща същия провал.

Използвайте механизма, който вашата дистрибуция документира за активиране без надзор на този етап, после потвърдете, че флаговете на профила съвпадат с него. Проверете резултата от чисто зареждане, а не от обвивка, която вече има агент. Запишете собственика на връзката, източника на тайната и етапа, който трябва да работи, за да не може по-късна промяна на автоматичното стартиране тихо да върне зависимост от това някой първо да отключи работен плот. Документацията е разликата между поправена услуга и такава, която отново се чупи следващото тримесечие.

Тествайте от контролирано чисто зареждане, а не от ръчен повторен опит след вход. Повторният опит успява по причината, поради която опитът при зареждане се е провалил, и това е точно доказателството, което бърз тест унищожава.

Подобни статии