ทำไม VPN บน Mac ของคุณจึงขอเข้าถึง Keychain ทุกครั้ง
ระบุว่าส่วนประกอบใดทำให้เกิดข้อความแจ้งของ VPN บน Mac แต่ละครั้ง หยุดความพยายามเชื่อมต่อซ้ำ และซ่อมการเข้าถึง Keychain โดยไม่ต้องรีเซ็ตพวงกุญแจทั้งหมด
การคลิก Connect หนึ่งครั้งควรให้หน้าต่างลงชื่อเข้าใช้หนึ่งหน้าต่าง บน Mac มักให้ถึงสามหน้าต่าง และแทบไม่เคยมีเจ้าของเดียวกัน: พวงกุญแจเป็นเจ้าของข้อความแจ้งข้อมูลรับรองภายในเครื่อง ขณะที่เกตเวย์ VPN เป็นเจ้าของการพิสูจน์ตัวตน และไคลเอนต์เป็นเจ้าของการแจ้งเตือนของตนเอง แทนที่จะหาสวิตช์ที่ทำให้ทุกอย่างเงียบ ให้ถือว่าแต่ละหน้าต่างเป็นข้อบกพร่องแยกกันซึ่งมีวิธีแก้ของตัวเอง คู่มือด้านล่างจะพาคุณผ่านความพยายามเชื่อมต่อที่ตั้งใจหนึ่งครั้ง และจบด้วยการตรวจสอบที่คุณทำซ้ำได้
ตั้งชื่อเจ้าของของแต่ละกล่องโต้ตอบก่อนเปลี่ยนการตั้งค่า
ขั้นแรกคือการทำบัญชี ไม่ใช่การกำหนดค่า ให้ลองเชื่อมต่อหนึ่งครั้ง และสำหรับแต่ละหน้าต่างที่ปรากฏ ให้จดสี่ฟิลด์ ได้แก่ ชื่อแอปที่แสดงในกล่องโต้ตอบ ข้อความที่แน่นอนโดยไม่มีสิ่งใดที่เป็นความลับ ระยะที่หน้าต่างปรากฏ และสิ่งที่เกิดขึ้นเมื่อคุณยกเลิก สามแถวแบบนี้ครอบคลุมเกือบทุกรายงานที่ผมตรวจ
ความเป็นเจ้าของเป็นตัวกำหนดวิธีแก้ที่ถูกต้อง และวิธีแก้ที่ผิดมักเป็นสิ่งที่เปลี่ยนข้อความแจ้งหนึ่งครั้งให้กลายเป็นสามครั้ง:
| Window | Who owns it | Correct fix | What not to do |
|---|---|---|---|
| “wants to use your confidential information stored in…” | The item's access control list in your login keychain | Approve the specific client helper, once, after checking the name | Resetting the login keychain, or granting Always Allow to every application |
| “Sign in to <organization>” or an MFA push | The gateway's identity provider | Use the client's supported session renewal, or re-authenticate | Scripting a fixed password or code into the client |
| “Connection failed”, “Update required”, a policy banner | The client or your organization | Read the first error and fix its cause | Hiding notices by editing a preference file the client rewrites |
ข้อความแจ้งที่กลับมาภายในการเชื่อมต่อครั้งเดียวกันเป็นสัญญาณที่ต่างจากข้อความที่กลับมาในการเชื่อมต่อครั้งถัดไป อย่างแรกมักหมายความว่าการเชื่อมต่อเริ่มใหม่ภายใต้คุณ อย่างที่สองมักหมายความว่ามีการขอข้อมูลรับรองที่จัดเก็บไว้ซ้ำ จดไว้ว่าคุณเจอแบบไหนก่อนแตะพวงกุญแจ เพราะสองอย่างนี้แทบไม่มีอะไรเหมือนกัน
ค้นหาว่ามีกี่อย่างที่เริ่มอุโมงค์
มีสี่กลไกที่เริ่ม VPN เดียวกันบน Mac ได้แก่ การกระทำบนแถบเมนู รายการลงชื่อเข้าใช้ กฎ On Demand และสคริปต์หรือเอเจนต์ เมื่อสองอย่างทำงานพร้อมกัน การเริ่มครั้งที่สองอาจมาถึงขณะที่ครั้งแรกยังรอการพิสูจน์ตัวตน ซึ่งทำให้เกิดหน้าต่างซ้ำและไม่มีความคืบหน้า เริ่มจากระบุสิ่งที่กำหนดค่าไว้ก่อน: scutil --nc list จะพิมพ์บริการ VPN ที่การตั้งค่าระบบรู้จักพร้อมสถานะปัจจุบัน ไคลเอนต์ที่มาพร้อมส่วนขยายเครือข่ายของตัวเองจะเก็บโปรไฟล์ไว้ในแอปและอาจไม่ปรากฏที่นั่น ดังนั้นให้ตรวจสอบรายการเชื่อมต่อของไคลเอนต์เองด้วย
จากนั้นมองหาตัวเริ่มที่แข่งขันกัน scutil --nc show "Work VPN" จะพิมพ์พจนานุกรมการกำหนดค่าของบริการในตัว รวมถึงกฎ On Demand กฎที่เชื่อมต่อใหม่ทุกครั้งที่อินเทอร์เฟซเปลี่ยนจะรีสตาร์ทอุโมงค์และเปิดข้อความแจ้งการพิสูจน์ตัวตนอีกครั้ง ทุกครั้งที่ Wi-Fi เคลื่อนที่หรือหน้าจอปลุกสแตกเครือข่าย ตรวจสอบรายการลงชื่อเข้าใช้ภายใต้การตั้งค่าระบบ > ทั่วไป > รายการลงชื่อเข้าใช้ และระบุเอเจนต์ต่อผู้ใช้ด้วย ls ~/Library/LaunchAgents ปล่อยสิ่งที่พึ่งพาสแตกความปลอดภัยที่จัดการโดย MDM ไว้ตามเดิม การลบมักถูกผลักกลับในการตรวจสอบครั้งถัดไป
หากต้องการดูว่าอะไรกำลังทำงานจริงระหว่างการเชื่อมต่อ: ps -Ao pid,comm | grep -iE 'vpn|tunnel|extension' การมีตัวช่วยไคลเอนต์สองตัวในที่ที่คุณคาดว่าจะมีตัวเดียวอธิบายคำถาม "ทำไมผมจึงได้รับข้อความแจ้งสองครั้ง" ได้บ่อยกว่าปัญหาข้อมูลรับรองใด ๆ มาก
ซ่อมการเข้าถึง Keychain โดยไม่ต้องรีเซ็ตพวงกุญแจ
ข้อความแจ้งมาจากรายการควบคุมการเข้าถึงของรายการที่จัดเก็บไว้ ไม่ใช่จากโปรโตคอล VPN แต่ละรายการบันทึกว่าแอปใดอ่านได้โดยไม่ต้องถาม หลังอัปเดตไคลเอนต์ ตัวช่วยที่ถามอาจมีชื่อหรือลายเซ็นต่างออกไปขณะที่รายการยังแสดงรายการเก่า macOS จึงถามอีกครั้งทุกการเชื่อมต่อ การอนุมัติตัวช่วยใหม่สำหรับรายการนั้นเพียงรายการเดียวคือวิธีแก้ทั้งหมด ไม่ใช่การอนุมัติทุกแอป
คุณยืนยันได้ว่า ACL เป็นสาเหตุโดยไม่ต้องแตะ VPN: security find-generic-password -s "service-name" -g จะอ่านรายการเดียวกันจากเทอร์มินัล ถ้าคำสั่งนั้นทำให้เกิดข้อความแจ้งด้วย กล่องโต้ตอบนั้นเป็นของพวงกุญแจ และอุโมงค์เป็นเพียงตัวกระตุ้น คำแนะนำของ Apple เกี่ยวกับปุ่มทั้งสาม — อนุญาตครั้งเดียว อนุญาตเสมอ ปฏิเสธ — คุ้มค่าที่จะอ่านสักครั้ง เพราะการปฏิเสธคือสิ่งที่ทำให้ข้อความแจ้งกลับมาทันทีแทนที่จะเป็นในการเชื่อมต่อครั้งถัดไป
หากคุณอนุมัติตัวช่วยผิด ให้เปิดรายการใน Keychain Access เปลี่ยนไปที่ Access Control และลบรายการนั้น นั่นคือการย้อนกลับ การลบพวงกุญแจลงชื่อเข้าใช้ หรือเรียกใช้เครื่องมือซ่อมแซมที่สร้างมันขึ้นใหม่ ยังทิ้งรหัสผ่านที่ไม่เกี่ยวข้องและเป็นการเปลี่ยนแปลงที่ใหญ่กว่าปัญหามาก
เก็บขั้นตอนการลงชื่อเข้าใช้และนโยบายไว้ในโฟลว์ที่เป็นเจ้าของมัน
การลงชื่อเข้าใช้ผ่านเบราว์เซอร์หรือการท้าทาย MFA เป็นของเกตเวย์ หากองค์กรของคุณมีการคงอยู่ของเซสชันหรือการพิสูจน์ตัวตนด้วยใบรับรอง ให้ใช้สิ่งนั้น เพราะเป็นวิธีที่ได้รับการสนับสนุนในการพิสูจน์ตัวตนให้น้อยลง การพิมพ์รหัสคงที่ลงในไคลเอนต์ หรือการเก็บรหัสผ่านไว้ในสคริปต์เพื่อไม่ให้ข้อความแจ้งปรากฏ จะแทนที่ปัจจัยแบบโต้ตอบด้วยความลับแบบคงที่ และจะล้มเหลวเมื่อนโยบายหมุนเวียนครั้งถัดไป
การแจ้งเตือนขององค์กรเป็นหมวดเดียวที่คุณไม่ควรระงับ มักบังคับใช้การตรวจสอบท่าทีหรือการยอมรับการใช้งานที่ยอมรับได้ และการซ่อนอาจทำให้อุปกรณ์หลุดจากการปฏิบัติตามข้อกำหนดแม้อุโมงค์จะทำงานอยู่ กล่องโต้ตอบข้อผิดพลาดเป็นอีกหมวดหนึ่ง ให้เก็บข้อความข้อผิดพลาดแรกไว้ เพราะกล่องโต้ตอบที่สองมักเป็นความล้มเหลวเดียวกันที่รายงานหลังลองใหม่
ตรวจสอบด้วยการเชื่อมต่อหนึ่งครั้ง แล้วตรวจอีกครั้งหลังรีบูต
เมื่อนำตัวเริ่มที่ซ้ำออกและซ่อมรายการในพวงกุญแจแล้ว ให้ลองเพียงครั้งเดียว: ออกจากทุกอินสแตนซ์ของไคลเอนต์รวมถึงตัวช่วยบนแถบเมนู เชื่อมต่อหนึ่งครั้ง และนับหน้าต่าง คุณต้องการการอนุมัติพวงกุญแจหากรายการถูกสร้างใหม่ และขั้นตอนพิสูจน์ตัวตนหนึ่งขั้นเท่านั้น ไม่มากกว่านั้น scutil --nc status "Work VPN" ควรรายงาน Connected สำหรับบริการในตัว
จากนั้นรีบูตหนึ่งครั้งและทำซ้ำ ข้อความแจ้งที่กลับมาหลังรีบูตเท่านั้นชี้ไปที่รายการลงชื่อเข้าใช้หรือกฎ On Demand ไม่ใช่ข้อมูลรับรอง ส่วนที่กลับมาภายในเซสชันชี้ไปที่ ACL หรือตัวเริ่มที่สอง หากยังเกิดซ้ำหลังทั้งสองรอบ สิ่งที่มีประโยชน์จะมอบให้ผู้ดูแลระบบคือตารางสามแถวจากการเชื่อมต่อครั้งแรก ได้แก่ เจ้าของ ข้อความที่แน่นอน ระยะ ไม่ใช่ภาพหน้าจอของกล่องโต้ตอบ
เป้าหมายคือข้อความแจ้งที่น้อยลง ไม่ใช่แบบเงียบ การเชื่อมต่อที่ซ่อนขั้นตอนการอนุญาตของมันคือการเชื่อมต่อที่คุณตรวจสอบไม่ได้อีกต่อไป และการหมุนเวียนใบรับรองครั้งถัดไปจะพบคุณโดยไม่รู้ว่าส่วนประกอบใดกำลังล้มเหลว