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

ขั้นตอนที่ 1: ระบุชื่อเครื่องที่เป็นเจ้าของโปรไฟล์

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

hostnamectl
hostname -f
ip -brief address

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

ขั้นตอนที่ 2: อ่านโปรไฟล์ด้วย UUID ไม่ใช่ป้ายชื่อ

NetworkManager ระบุการเชื่อมต่อด้วย UUID ขณะที่ชื่อเป็นป้ายที่ใครก็แก้ไขหรือทำสำเนาได้ แสดงรายการทั้งสองและจับคู่รายการที่คุณตั้งใจจริง โดยเฉพาะบนโฮสต์ที่มีการนำเข้าโปรไฟล์ VPN หลายรายการตลอดหลายปี

nmcli -f NAME,UUID,TYPE connection show
nmcli connection show --active
nmcli general permissions

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

เมื่อได้ UUID แล้ว ให้ใส่ในตัวแปรและใช้ตัวแปรนั้นในทุกคำสั่งถัดไป วิธีนี้ขจัดข้อผิดพลาดจากการคัดลอกและวางทั้งชั้น และทำให้บันทึกทำซ้ำได้

UUID=$(nmcli -g UUID connection show 'Corp VPN')
nmcli connection edit uuid "$UUID"

ขั้นตอนที่ 3: ตัดสินใจว่าโปรแกรมแก้ไขแบบกราฟิกเป็นเครื่องมือที่เหมาะสมหรือไม่

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

echo "$DISPLAY"
ssh -X you@vpn-host
xauth list

OpenSSH เปิดใช้การส่งต่อ X11 ด้วย -X และบันทึกข้อควรระวังที่มาพร้อมกัน โฮสต์ระยะไกลสามารถเข้าถึงจอภาพในเครื่องของคุณ ซึ่งเป็นขอบเขตความไว้วางใจจริง การส่งต่อแบบเชื่อถือด้วย -Y ขจัดส่วนหนึ่งของการตรวจสอบเหล่านั้น และไม่ควรเป็นวิธีแก้ปัญหาโดยอัตโนมัติสำหรับแอปที่ล้มเหลวภายใต้ค่าเริ่มต้น หากองค์กรของคุณเผยแพร่วิธีบริหารจัดการระยะไกล ให้ใช้วิธีนั้นแทนการประดิษฐ์รูปแบบใหม่ ในกรณีส่วนใหญ่โปรแกรมแก้ไขบรรทัดคำสั่งเป็นพื้นผิวที่เล็กกว่าและเป็นคำตอบที่ดีกว่า

หยุดตรงนี้หากเส้นทางเดียวที่ใช้ได้ต้องใช้ -Y และคุณอธิบายไม่ได้ว่าทำไม นั่นเป็นการตัดสินใจของเจ้าของนโยบายความปลอดภัย ไม่ใช่ทางหลีกเลี่ยงที่เก็บไว้ในสคริปต์ส่วนตัว

ขั้นตอนที่ 4: เตรียมเส้นทางกู้คืนก่อนเปิดใช้งานสิ่งใด

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

sudo systemctl status NetworkManager
ip route show default
ss -tn state established '( sport = :22 )'

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

บันทึก UUID ค่าคุณสมบัติที่คุณเปลี่ยน และคำสั่งที่คุณใช้ตรวจสอบ คนถัดไปที่แตะโฮสต์นี้จะต้องใช้ทั้งสามอย่าง และบันทึกมีค่ามากกว่าบทสรุปที่บอกว่าแก้ไข VPN แล้ว รายการตรวจสอบที่จบโดยไม่มีบันทึกการย้อนกลับเป็นเพียงครึ่งเดียว

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