การกดแป้นหนึ่งครั้งก็พอจะเริ่ม VPN บน Mac และ Apple มีสองวิธีดั้งเดิมในการผูกมัน Shortcuts ให้แต่ละทางลัดมีชุดแป้นของตัวเองและมีรายการในแถบเมนู Automator ให้ Quick Action ที่คุณกำหนดแป้นในตั้งค่าระบบ แยกจากตัวเวิร์กโฟลว์เอง ทั้งสองเส้นทางส่งคำขอเดียวกันไปยังบริการเชื่อมต่อเดียวกัน ความต่างที่สำคัญจึงอยู่ที่ว่าการผูกนั้นอยู่ที่ไหน คุณผ่านด่านสิทธิ์ใดบ้าง และคุณตรวจอะไรเมื่อแป้นดูเหมือนไม่ทำอะไรเลย

ทุกอย่างด้านล่างถือว่ามีบริการ VPN ของระบบอยู่แล้วและปรากฏใน scutil --nc list ถ้าผู้ให้บริการของคุณส่งไคลเอนต์ของบุคคลที่สามซึ่งการเชื่อมต่อไม่เคยปรากฏที่นั่น ทั้งสองเครื่องมือก็สั่งงานผ่าน scutil ไม่ได้ และคุณต้องใช้การกระทำของผู้ให้บริการนั้นเอง

ทั้งสองเส้นทางเรียกบริการเดียวกัน

เริ่มจากรายการ ไม่ใช่จากแอป scutil --nc list พิมพ์บริการที่บันทึกไว้แต่ละรายการพร้อมสถานะและชื่อที่แสดงตรงตัว และนั่นคือสตริงที่คุณต้องใส่ในเครื่องหมายคำพูดในคำสั่ง:

/usr/sbin/scutil --nc start "Office VPN"

บรรทัดนั้นคือคำขอเปิดใช้งานมันกลับมาทันทีที่คำขอได้รับการยอมรับ มันไม่รอปัจจัยที่สอง ไม่รายงานว่า DNS ส่วนตัวถูกตั้งไว้ และไม่ยืนยันว่าเซิร์ฟเวอร์ไฟล์ตอบสนอง มองมันเป็นการคลิกเดียวกับที่คุณจะทำในเมนู เพียงแต่ไม่มีเมนู

scutil ก็ไม่มีสวิตช์เช่นกัน การแยกการเชื่อมต่อและการตัดการเชื่อมต่อเป็นคนละการกระทำคิดตามได้ง่ายกว่าการใช้แป้นเดียวที่สลับสถานะ เพราะการสลับที่กดระหว่างแฮนด์เชกอาจหยุดการเชื่อมต่อที่ยังขึ้นไม่เสร็จ ถ้าต้องการแป้นเดียว ให้แยกตามผลลัพธ์ของ scutil --nc status "Office VPN" และตัดสินอย่างชัดเจน อย่าสลับแบบเดาสุ่ม

Shortcuts: หนึ่งแป้นต่อหนึ่งการกระทำ พื้นที่สิทธิ์กว้างกว่า

  1. สร้างทางลัดในเครื่องใน Shortcuts และตั้งชื่อตามงาน เช่น Connect Office VPN

  2. เพิ่ม Run Shell Script แล้ววางคำขอเริ่ม โดยพิมพ์ชื่อบริการตรง ๆ ไม่ใช่ดึงจากคลิปบอร์ดหรือข้อความที่เลือก

  3. รันหนึ่งครั้งจากตัวแก้ไขในเซสชันที่คุณล็อกอินอยู่ แล้วทำขั้นตอนยืนยันตัวตนตามปกติให้เสร็จ เพื่อให้ระบบบันทึกการอนุมัติที่จำเป็น

  4. เปิดรายละเอียดของทางลัดแล้วผูกชุดแป้นด้วย Add Keyboard Shortcut Apple เอกสารการผูกนี้ไว้ในคู่มือผู้ใช้ Shortcutsของบริษัท ชุดแป้นที่ระบบสงวนไว้แล้วเอามาใช้ไม่ได้

การผูกติดไปกับทางลัด การกระทำเดียวจึงนั่งอยู่ในแถบเมนูหรือใน Dock ได้โดยไม่ต้องทำงานเพิ่ม ราคาคือสิทธิ์ที่สอง Shortcuts จะไม่รันสคริปต์เชลล์จนกว่าจะอนุญาตการเขียนสคริปต์ในการตั้งค่า และบน Mac ที่มีการจัดการ การตั้งนี้อาจถูกล็อกด้วยนโยบาย อนุญาตเฉพาะทางลัดที่คุณเขียนหรืออ่านเอง ไม่ใช่ไฟล์นำเข้าที่เนื้อหาไม่ชัด

การซิงก์คือกับดักอีกอย่าง ทางลัดที่คัดลอกจาก Mac เครื่องอื่นยังพกชื่อบริการตรงตัวของเครื่องนั้นอยู่ บนเครื่องที่บริการชื่อต่างกัน แป้นจะทำงาน สคริปต์จะจบ และไม่มีอะไรบอกคุณว่าทำไม

Automator: ชิ้นส่วนที่เคลื่อนไหวน้อยกว่า แป้นที่คุณต้องตามหา

  1. ใน Automator เลือก Quick Action ตั้งเวิร์กโฟลว์ให้ไม่รับข้อมูลเข้าในแอปใดเลย และเพิ่ม Run Shell Script ด้วยคำสั่งเดิม เชลล์ /bin/zsh

  2. บันทึกด้วยชื่อที่คุณจะจำได้ในรายการ เพราะนั่นคือชื่อที่คุณจะค้นหาทีหลัง

  3. เปิดตั้งค่าระบบ ตามด้วยแป้นพิมพ์ ตามด้วยทางลัดแป้นพิมพ์ ตามด้วยบริการ ค้นหาเวิร์กโฟลว์ ติ๊กถูกถ้ายังไม่ติ๊ก และบันทึกชุดแป้น

เวิร์กโฟลว์ถูกเรียกเป็นบริการ แป้นจึงอยู่ในตารางบริการและขึ้นกับชื่อเวิร์กโฟลว์ ถ้าคุณเปลี่ยนชื่อเวิร์กโฟลว์ที่บันทึกไว้ภายหลัง ควรเปิดแผงนั้นอีกครั้งเพื่อยืนยันว่าการกำหนดยังอยู่ ทางลัดของบริการเป็นแบบทั้งระบบ ซึ่งสะดวกจนกว่าจะชนกับชุดแป้นที่แอปอื่นต้องการ

สิ่งที่ได้คือชิ้นงานที่เล็กลงและคำขอสิทธิ์น้อยลงหนึ่งครั้ง ไฟล์เวิร์กโฟลว์ธรรมดา ไม่มีรายการแถบเมนูของตัวเอง ไม่มีสวิตช์การเขียนสคริปต์ให้เถียงกัน สิ่งที่เสียคือการค้นพบ เพราะการกระทำจะปรากฏในรายการบริการหลังเวิร์กโฟลว์ถูกบันทึกและระบบเห็นหนึ่งครั้งแล้วเท่านั้น

จุดที่ทั้งสองต่างกันเมื่อแป้นไม่ทำอะไรเลย

SymptomShortcuts routeAutomator route
Key fires, nothing connectsService name mismatch; re-read scutil --nc listSame name mismatch inside the shell action
Key never fires anywhereBinding collides with a reserved or app-level combinationService entry unticked in Keyboard Shortcuts, or renamed
An authorization dialog appears every timePrompt comes from the VPN type, not from ShortcutsSame prompt, same cause; the script runs as you
Connects, no reachable resourceReadiness not checked after the requestIdentical gap, identical fix
Works only inside one appRare; check where the shortcut is made availableWorkflow set to receive input from a specific app

ตารางเบ้โดยตั้งใจ ในสองจากห้าแถวของมัน การแก้ไขต่างกันจริง ความล้มเหลวส่วนใหญ่มาจากคู่ข้อบกพร่องเดียวกัน คือชื่อที่ไม่ตรงกับบริการที่บันทึกไว้ และคำขอที่ถูกเข้าใจว่าเป็นการเชื่อมต่อที่เสร็จแล้ว และการเปลี่ยนเครื่องมือไม่ได้รักษาทั้งสองอย่าง

ทั้งสองเส้นทางยังปฏิเสธที่จะเก็บข้อมูลรับรอง ชุดแป้นไม่อาจเปลี่ยนการเข้าสู่ระบบแบบโต้ตอบให้กลายเป็นแบบไม่มีคนเฝ้า และการวางรหัสผ่านลงในสคริปต์เป็นความคิดที่แย่กว่าการพิมพ์วันละครั้ง

เลือกตามเงื่อนไขสามข้อนี้

เลือก Shortcuts เมื่อคุณต้องการแป้นต่อการกระทำพร้อมการเข้าถึงจากแถบเมนู และเมื่ออนุญาตการเขียนสคริปต์บนเครื่องแล้ว เลือก Automator เมื่อคุณต้องการไฟล์เดียวสำหรับคัดลอกระหว่าง Mac และไม่ต้องการสวิตช์เพิ่ม ถ้าองค์กรของคุณล็อกการเขียนสคริปต์ใน Shortcuts แล้ว Quick Action คือหนึ่งเดียวในสองที่จะทำงานได้โดยไม่ต้องเปลี่ยนนโยบาย และนั่นตัดสินคำถามให้คุณ

ก่อนจะพึ่งพาแป้น ให้ไล่รายการนี้ ยืนยันบริการใน scutil --nc list กดแป้นจากการเริ่มแบบเย็นและดู scutil --nc status เปิดทรัพยากรที่อุโมงค์มีไว้เพื่อมัน และสร้างการตัดการเชื่อมต่อแยกต่างหากที่ตั้งชื่อชัดเจน อย่าวางการหยุดเพียงอย่างเดียวไว้บนเซสชันระยะไกลที่คุณต้องมีอุโมงค์จึงจะเข้าถึง

ขั้นต่อไป ผูกเฉพาะ Connect ปล่อย Disconnect ไม่ผูกสักวัน แล้วจดว่าคุณยังเอื้อมไปที่เมนูบ่อยแค่ไหน นั่นบอกคุณว่าการกดแป้นประหยัดเวลาหรือแค่ซ่อนสถานะ

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