Aparece uma mensagem sobre systemd-tty-ask-password-agent no terminal, e o túnel não está ativo. A leitura tentadora é que a VPN rejeitou uma palavra-passe e algo está agora à espera de uma correção. Mais precisamente, um serviço pediu ao systemd uma entrada interativa, e o pedido ainda não foi respondido. Que serviço perguntou e que segredo quer são duas questões que pode resolver antes de escrever o que quer que seja.

Duas condições decidem quem deve responder

A primeira condição é se iniciou esta instância deliberadamente. Um pedido que se segue a uma ação sua é seu para responder, e um que aparece sem uma ação correspondente pertence a outra coisa. A segunda é se o segredo é autenticação de conta ou proteção de chave, porque vivem em locais diferentes e percorrem caminhos de código diferentes. Ambas as respostas estão visíveis no registo se olhar antes de agir.

Quando ambas as respostas são claras, a decisão é simples: responda pelo próprio caminho de pedido suportado do serviço. Quando alguma não é clara, o movimento correto é investigar em vez de escrever uma palavra-passe num pedido que não consegue atribuir.

Essa é toda a regra, e vale a pena dizê-la antes dos comandos. Tudo o que se segue decorre dela.

Liste o pedido antes de escrever o que quer que seja

O agente pode enumerar o que está pendente sem responder a nada. sudo systemd-tty-ask-password-agent --list imprime os pedidos pendentes, e essa saída é a prova de que precisa para ligar um pedido a uma unidade. Leia-a antes de fornecer uma credencial, e mantenha as descrições dos pedidos fora de qualquer colagem de diagnóstico pública.

Correlacione a listagem com a operação que iniciou e com a unidade que a possui. Se nada na lista corresponder à sua ação, o pedido que viu pertence a outro serviço e não é seu para resolver. O nome da unidade na listagem é a única ligação fiável entre um pedido e um serviço.

Não responda a um pedido que não consegue atribuir. O custo de esperar é um atraso, enquanto o custo de responder ao pedido errado é uma credencial no local errado.

De que segredo precisa a instância, na realidade?

auth-user-pass diz respeito à autenticação da conta no serviço VPN, e sem um ficheiro de credenciais o comportamento documentado é perguntar na consola. askpass, em vez disso, obtém a frase-passe que desbloqueia material de chave protegido, e fá-lo antes de o processo passar para segundo plano. São segredos diferentes com vidas diferentes.

Os formatos dos ficheiros também diferem. A forma de conta espera uma linha de nome de utilizador e uma linha de palavra-passe, enquanto o ficheiro de frase-passe da chave lê a primeira linha como a sua palavra-passe. Copiar a receita do ficheiro de credenciais do outro papel produz geralmente outro pedido em vez de uma solução. Um ficheiro com a forma errada é pior do que nenhum ficheiro, porque a falha muda para um local que ninguém vigia.

Verifique que diretiva a instância usa antes de decidir o que escrever. O nome da diretiva diz-lhe para que segredo é o pedido.

O que --query faz que --list não faz

--query processa cada pedido pendente no terminal que o chama, o que é uma ação muito mais ampla do que responder a um pedido. Não é um seletor do OpenVPN, e numa máquina ocupada pode responder a pedidos pertencentes a outras unidades. O modo de vigilância é ainda mais amplo, porque continua a tratar pedidos à medida que chegam.

Use o mecanismo mais estreito que funcione. Para um único serviço, o fluxo de pedido próprio desse serviço é mais estreito do que um agente global, e mantém a resposta ligada à unidade que perguntou.

Transformar um pedido pontual num agente global sem supervisão porque um aviso apareceu uma vez é a forma como um incómodo temporário se torna um desenho permanente. A mesma cautela aplica-se a desativar as unidades de notificação de palavra-passe em todo o anfitrião.

Decida e depois registe a escolha

Para uma implementação sem supervisão, acorde com quem possui a ligação a fonte de credenciais, as permissões do ficheiro e o calendário de renovação. Um segundo fator interativo pode precisar de uma pessoa ou de uma identidade de serviço dedicada. Suprimir o pedido não produz essa autenticação, e remover auth-user-pass só quebra um serviço que precisa dele.

Depois da interação, olhe para a mesma instância quanto ao seu próximo evento e teste o recurso privado. Se nada estiver pendente, volte ao estado da instância em vez de iniciar cada unidade OpenVPN do anfitrião.

Artigos relacionados