OpenVPN чека захтев за лозинку од systemd: треба ли да одговорите?
Захтев за лозинку од systemd је захтев услуге, а не пресуда излаза. Одредите која се тајна тражи и ко треба да одговори.
У терминалу се појављује порука о systemd-tty-ask-password-agent, а тунел није подигнут. Заводљиво читање је да је VPN одбио лозинку и да нешто сада чека исправку. Тачније речено, услуга је затражила од systemd интерактивни унос, а захтев још није одговорен. Која услуга је питала и која јој је тајна потребна — два су питања која можете решити пре него што било шта откуцате.
Ко треба да одговори, одлучују два услова
Први услов је да ли сте ову инстанцу покренули намерно. Захтев који следи после ваше радње ваш је за одговор, а онај који се појави без одговарајуће радње припада нечему другом. Други је да ли је тајна аутентификација налога или заштита кључа, јер они живе на различитим местима и путују различитим путањама кода. Оба одговора су видљива у дневнику ако погледате пре него што делујете.
Када су оба одговора јасна, одлука је једноставна: одговорите кроз сопствену подржану путању захтева те услуге. Када је неки нејасан, правилан потез је истражити, а не уписивати лозинку у захтев који не можете да припишете.
То је цело правило, и вреди га изрећи пре команди. Све ниже следи из њега.
Наведите захтев пре него што било шта откуцате
Агент може да наброји шта је на чекању без одговора на било шта. sudo systemd-tty-ask-password-agent --list исписује нерешене захтеве, а тај испис је доказ који вам треба да повежете захтев са јединицом. Прочитајте га пре него што дате акредитиве и држите описе захтева изван сваког јавног дијагностичког уметања.
Повежите списак са операцијом коју сте започели и са јединицом која је поседује. Ако ништа на списку не одговара вашој радњи, захтев који сте видели припада другој услузи и није ваш да га решите. Назив јединице на списку једина је поуздана веза између захтева и услуге.
Не одговарајте на захтев који не можете да припишете. Цена чекања је одлагање, а цена одговора на погрешан захтев су акредитиви на погрешном месту.
Која је тајна инстанци заиста потребна?
auth-user-pass се односи на аутентификацију налога код VPN услуге, а без датотеке акредитива документовано понашање је да се пита на конзоли. askpass уместо тога добија лозинку која откључава заштићени кључни материјал и то чини пре него што процес пређе у позадину. То су различите тајне са различитим трајањем.
И формати датотека се разликују. Облик за налог очекује ред са корисничким именом и ред са лозинком, док датотека лозинке кључа чита први ред као своју лозинку. Копирање рецепта за датотеку акредитива из друге улоге обично производи још један захтев уместо решења. Датотека погрешног облика гора је од никакве датотеке, јер се квар премешта на место које нико не надгледа.
Проверите коју директиву инстанца користи пре него што одлучите шта да упишете. Назив директиве вам казује за коју је тајну захтев.
Шта ради --query а шта --list не ради
--query обрађује сваки захтев на чекању на терминалу који га позива, што је много шира радња од одговора на један захтев. То није селектор OpenVPN и на заузетом рачунару може да одговори на захтеве који припадају другим јединицама. Режим посматрања је још шири, јер наставља да обрађује захтеве како пристижу.
Користите најтешње средство које ради. За једну услугу, сопствени ток захтева те услуге је тешњи од глобалног агента и држи одговор везан за јединицу која је питала.
Претварање једнократног захтева у ненадгледан глобални агент само зато што се обавештење појавило једном је пут којим привремена сметња постаје трајан дизајн. Иста предострожност важи за искључивање јединица обавештења о лозинки на целом домаћину.
Одлучите, па запишите избор
За ненадгледано распоређивање договорите извор акредитива, дозволе за датотеку и распоред обнове са оним ко поседује везу. Интерактивни други фактор може да захтева особу или посебан идентитет услуге. Потискивање захтева не ствара ту аутентификацију, а уклањање auth-user-pass квари само услугу којој је потребан.
После интеракције погледајте исту инстанцу због њеног следећег догађаја и тестирајте приватни ресурс. Ако ништа није на чекању, вратите се у стање инстанце уместо да покрећете сваку OpenVPN јединицу на домаћину.