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 유닛을 시작하는 대신 인스턴스 상태로 돌아가십시오.