Nel terminale compare un messaggio su systemd-tty-ask-password-agent e il tunnel non è attivo. La lettura invitante è che la VPN abbia rifiutato una password e che qualcosa ora attenda una correzione. È più preciso dire che un servizio ha chiesto a systemd un input interattivo e che la richiesta non ha ancora ricevuto risposta. Quale servizio ha chiesto e quale segreto vuole sono due domande che puoi risolvere prima di digitare qualsiasi cosa.

Due condizioni decidono chi dovrebbe rispondere

La prima condizione è se hai avviato questa istanza di proposito. Una richiesta che segue un'azione che hai compiuto è tua da soddisfare, e una che compare senza un'azione corrispondente appartiene a qualcos'altro. La seconda è se il segreto è autenticazione dell'account o protezione della chiave, perché vivono in luoghi diversi e viaggiano su percorsi di codice diversi. Entrambe le risposte sono visibili nel journal se guardi prima di agire.

Quando entrambe le risposte sono chiare, la decisione è semplice: rispondi tramite il percorso di richiesta supportato del servizio stesso. Quando una delle due non è chiara, la mossa giusta è indagare invece di digitare una password in una richiesta che non riesci ad attribuire.

Questa è tutta la regola, e vale la pena enunciarla prima dei comandi. Tutto ciò che segue ne deriva.

Elenca la richiesta prima di digitare qualsiasi cosa

L'agente può enumerare ciò che è in sospeso senza rispondere a nulla. sudo systemd-tty-ask-password-agent --list stampa le richieste in sospeso, e quell'output è la prova che ti serve per collegare una richiesta a un'unità. Leggilo prima di fornire una credenziale e tieni le descrizioni delle richieste fuori da qualsiasi incollaggio diagnostico pubblico.

Correla l'elenco con l'operazione che hai avviato e con l'unità che la possiede. Se nulla nell'elenco corrisponde alla tua azione, la richiesta che hai visto appartiene a un altro servizio e non spetta a te risolverla. Il nome dell'unità nell'elenco è l'unico collegamento affidabile tra una richiesta e un servizio.

Non rispondere a una richiesta che non riesci ad attribuire. Il costo dell'attesa è un ritardo, mentre il costo di rispondere alla richiesta sbagliata è una credenziale nel posto sbagliato.

Di quale segreto ha davvero bisogno l'istanza?

auth-user-pass riguarda l'autenticazione dell'account verso il servizio VPN, e senza un file di credenziali il comportamento documentato è chiedere sulla console. askpass invece ottiene la passphrase che sblocca il materiale di chiave protetto, e lo fa prima che il processo passi in background. Sono segreti diversi con durate diverse.

Anche i formati dei file differiscono. Il modulo account si aspetta una riga di nome utente e una riga di password, mentre il file della passphrase della chiave legge la prima riga come sua password. Copiare la ricetta del file di credenziali dall'altro ruolo di solito produce un'altra richiesta invece di una soluzione. Un file con la forma sbagliata è peggio di nessun file, perché il guasto si sposta in un luogo che nessuno sorveglia.

Controlla quale direttiva usa l'istanza prima di decidere cosa digitare. Il nome della direttiva ti dice per quale segreto è la richiesta.

Cosa fa --query che --list non fa

--query elabora ogni richiesta in sospeso sul terminale chiamante, che è un'azione molto più ampia del rispondere a una sola richiesta. Non è un selettore OpenVPN, e su una macchina occupata può rispondere a richieste appartenenti ad altre unità. La modalità di osservazione è ancora più ampia, perché continua a gestire le richieste man mano che arrivano.

Usa il meccanismo più stretto che funziona. Per un singolo servizio, il flusso di richiesta proprio di quel servizio è più stretto di un agente globale, e mantiene la risposta legata all'unità che ha chiesto.

Trasformare una richiesta una tantum in un agente globale incustodito perché un avviso è comparso una volta è il modo in cui un fastidio temporaneo diventa un progetto permanente. La stessa cautela vale per disattivare le unità di notifica della password su tutto l'host.

Decidi, poi registra la scelta

Per una distribuzione incustodita, concordare con chi possiede la connessione la fonte delle credenziali, i permessi del file e il calendario di rinnovo. Un secondo fattore interattivo può richiedere una persona o un'identità di servizio dedicata. Sopprimere la richiesta non produce quell'autenticazione, e rimuovere auth-user-pass rompe solo un servizio che ne ha bisogno.

Dopo l'interazione, guarda la stessa istanza per il suo evento successivo e prova la risorsa privata. Se nulla è in sospeso, torna allo stato dell'istanza invece di avviare ogni unità OpenVPN dell'host.

Articoli correlati