OpenVPN espera una solicitud de contraseña de systemd: ¿deberías responderla?
Una petición de contraseña de systemd es una solicitud de un servicio, no un veredicto de la puerta de enlace. Decide qué secreto se pide y quién debería responderla.
Aparece un mensaje sobre systemd-tty-ask-password-agent en la terminal y el túnel no está levantado. La lectura tentadora es que la VPN rechazó una contraseña y algo ahora espera una corrección. Es más exacto decir que un servicio pidió a systemd una entrada interactiva y que la solicitud aún no se ha respondido. Qué servicio preguntó y qué secreto quiere son dos preguntas que puedes resolver antes de escribir nada.
Dos condiciones deciden quién debería responder
La primera condición es si iniciaste esta instancia a propósito. Una solicitud que sigue a una acción tuya es tuya para responder, y una que aparece sin una acción correspondiente pertenece a otra cosa. La segunda es si el secreto es autenticación de cuenta o protección de clave, porque ambos viven en lugares distintos y viajan por rutas de código distintas. Ambas respuestas son visibles en el registro si miras antes de actuar.
Cuando ambas respuestas están claras, la decisión es sencilla: responde por la propia ruta de solicitud admitida del servicio. Cuando alguna no está clara, el movimiento correcto es investigar en lugar de escribir una contraseña en una solicitud que no puedes atribuir.
Esa es toda la regla, y merece decirse antes de los comandos. Todo lo que sigue se deriva de ella.
Enumera la solicitud antes de escribir nada
El agente puede enumerar lo que está pendiente sin responder nada. sudo systemd-tty-ask-password-agent --list imprime las solicitudes pendientes, y esa salida es la prueba que necesitas para conectar una solicitud con una unidad. Léela antes de entregar una credencial y mantén las descripciones de las solicitudes fuera de cualquier pegado de diagnóstico público.
Correlaciona el listado con la operación que iniciaste y con la unidad que la posee. Si nada del listado coincide con tu acción, la solicitud que viste pertenece a otro servicio y no es tuya de resolver. El nombre de la unidad en el listado es el único vínculo fiable entre una solicitud y un servicio.
No respondas una solicitud que no puedes atribuir. El costo de esperar es un retraso, mientras que el costo de responder la solicitud equivocada es una credencial en el lugar equivocado.
¿Qué secreto necesita realmente la instancia?
auth-user-pass se refiere a la autenticación de cuenta con el servicio VPN, y sin un archivo de credenciales el comportamiento documentado es preguntar en la consola. askpass en cambio obtiene la frase de contraseña que desbloquea material de clave protegido, y lo hace antes de que el proceso pase a segundo plano. Son secretos distintos con vidas distintas.
Los formatos de archivo también difieren. La forma de cuenta espera una línea de nombre de usuario y una línea de contraseña, mientras que el archivo de frase de contraseña de la clave lee la primera línea como su contraseña. Copiar la receta del archivo de credenciales del otro rol suele producir otra solicitud en lugar de una solución. Un archivo con la forma equivocada es peor que ningún archivo, porque el fallo se traslada a un lugar que nadie vigila.
Comprueba qué directiva usa la instancia antes de decidir qué escribir. El nombre de la directiva te dice para qué secreto es la solicitud.
Qué hace --query que --list no hace
--query procesa cada solicitud pendiente en la terminal que lo llama, lo cual es una acción mucho más amplia que responder una solicitud. No es un selector de OpenVPN, y en una máquina ocupada puede responder solicitudes de otras unidades. El modo de vigilancia es aún más amplio, porque sigue gestionando solicitudes a medida que llegan.
Usa el mecanismo más estrecho que funcione. Para un solo servicio, el flujo de solicitud propio de ese servicio es más estrecho que un agente global, y mantiene la respuesta ligada a la unidad que preguntó.
Convertir una solicitud puntual en un agente global desatendido porque un aviso apareció una vez es la forma en que una molestia temporal se convierte en un diseño permanente. La misma precaución se aplica a desactivar las unidades de notificación de contraseña en todo el host.
Decide y luego registra la elección
Para un despliegue desatendido, acuerda la fuente de credenciales, los permisos del archivo y el calendario de renovación con quien posee la conexión. Un segundo factor interactivo puede necesitar una persona o una identidad de servicio dedicada. Suprimir la solicitud no produce esa autenticación, y eliminar auth-user-pass solo rompe un servicio que lo necesita.
Después de la interacción, mira la misma instancia para su siguiente evento y prueba el recurso privado. Si no hay nada pendiente, vuelve al estado de la instancia en lugar de iniciar cada unidad OpenVPN del host.