ข้อความเกี่ยวกับ 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 บนโฮสต์

บทความที่เกี่ยวข้อง