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

ระบุชื่อผู้รับก่อนพิมพ์อะไรลงไป

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

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

ตรวจสอบตัวตนของโฮสต์ บันทึก และการเจรจา

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

ssh-keygen -F ssh.internal.example.net -f ~/.ssh/known_hosts
ssh -o StrictHostKeyChecking=yes ssh.internal.example.net

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

ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub
sudo sshd -T | grep -E 'hostkey|kexalgorithms|cipher'

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

อ่านวิธีที่เซิร์ฟเวอร์ยอมรับจริง ๆ

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

sudo sshd -T | grep -E 'passwordauthentication|pubkeyauthentication|permitrootlogin'

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

จัดการคำเตือนกุญแจโฮสต์เป็นขั้นตอนเหตุการณ์

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

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

สิ่งที่คู่มือนี้ไม่ครอบคลุม

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

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

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