SSH Key ที่ไม่รู้จักหมายความว่าอะไรจริง ๆ
SSH Key ที่แสดงอยู่ในบัญชี GitHub คือข้อมูลรับรองที่ใช้ยืนยันตัวตนเป็นบัญชีนั้นได้ การเห็นคีย์ที่ไม่รู้จักเป็นเหตุผลให้ตรวจสอบ ไม่ใช่ข้อสรุป คีย์นั้นอาจเป็นของอุปกรณ์ที่คุณลืมไปแล้ว การตั้งค่าของสมาชิกทีมคนเก่า แล็ปท็อปเครื่องเก่า หรือสิ่งที่คุณไม่ได้อนุญาต วิธีที่ปลอดภัยคือระบุเจ้าของและวัตถุประสงค์ก่อนลบอะไร เพราะการลบคีย์ที่ขั้นตอนการทำงานที่ถูกต้องตามกฎใช้อยู่อาจทำให้ขั้นตอนนั้นหยุดชะงัก
GitHub มองหลายสิ่งเป็นช่องทางเข้าถึงแยกจากกัน SSH Key ส่วนตัว, Deploy Key ที่ผูกกับรีโพซิทอรี และแอปพลิเคชัน OAuth ที่ได้รับอนุญาตเป็นกลไกคนละแบบที่มีขอบเขตต่างกัน การตรวจสอบอย่างหนึ่งไม่ใช่การตรวจสอบอีกอย่าง
GitHub แนะนำให้ตรวจสอบ SSH Key, Deploy Key และแอปพลิเคชันที่ได้รับอนุญาตแยกกันเป็นช่องทางเข้าถึงคนละทาง แหล่งที่มา
เช็กลิสต์ก่อนและหลัง
ใช้รายการนี้เป็นแนวทางปฏิบัติ คอลัมน์ “ก่อน”是关于การรวบรวมข้อเท็จจริง คอลัมน์ “หลัง”是关于การยืนยันผลลัพธ์
| ขั้นตอน | สิ่งที่ตรวจ | เหตุใดจึงสำคัญ |
|---|---|---|
| ก่อน | แสดง SSH Key ทุกอันในบัญชีพร้อมชื่อและลายนิ้วมือหรือรายละเอียดการสร้างที่มองเห็นได้ | คุณต้องเห็นภาพรวมทั้งหมดก่อนตัดสินว่ารายการใดไม่รู้จัก |
| ก่อน | จับคู่แต่ละคีย์กับอุปกรณ์หรือบุคคลที่คุณระบุชื่อได้ | คีย์ที่ไม่มีชื่อคือคีย์ที่ต้องตั้งคำถาม |
| ก่อน | ถามว่ามีขั้นตอนการทำงานปัจจุบันใดพึ่งพาคีย์นี้อยู่หรือไม่ (การ build, การ deploy, เครื่องที่ใช้ร่วมกัน) | การลบคีย์ที่ใช้งานอยู่จะทำให้ขั้นตอนนั้นหยุด |
| ก่อน | ตรวจว่าการเข้าถึงเดียวกันนั้นได้รับผ่าน Deploy Key หรือแอปพลิเคชันที่ได้รับอนุญาตด้วยหรือไม่ | สิ่งเหล่านี้เป็นช่องทางแยกและต้องตรวจแยก |
| ก่อน | ตัดสินใจว่าจะเก็บ แทนที่ หรือลบ | คีย์ที่ล้าสมัยอาจต้องแทนที่มากกว่าลบเฉย ๆ |
| หลัง | ยืนยันว่าคีย์ไม่ปรากฏในรายการ SSH Key ของบัญชีอีก | รายการที่มองเห็นคือการยืนยันขั้นแรก |
| หลัง | ยืนยันว่าขั้นตอนการทำงานที่ได้รับผลกระทบยังทำงานได้ หรือคุณมีช่องทางทดแทนแล้ว | การลบไม่ควรทำให้กระบวนการที่ถูกต้องตามกฎตกค้าง |
| หลัง | บันทึกว่าลบอะไรและเมื่อไร โดยไม่บันทึกตัวคีย์เอง | บันทึกช่วยในการตรวจสอบครั้งต่อไป |
การลบ SSH Key ของบัญชี
การลบเกิดขึ้นในหน้าตั้งค่าบัญชี เส้นทางที่ GitHub ระบุไว้คือ Settings แล้วไปที่ SSH and GPG keys ซึ่งคุณสามารถตรวจสอบ SSH Key ของบัญชีและลบอันที่ไม่รู้จักหรือล้าสมัยได้
ใน Settings, SSH and GPG keys ให้ตรวจสอบ SSH Key ของบัญชีและลบอันที่ไม่รู้จักหรือล้าสมัย แหล่งที่มา
ให้จำกัดขอบเขตให้แคบ ขั้นตอนนี้ลบ SSH Key ของบัญชี ไม่ได้ลบ Deploy Key ไม่ได้เพิกถอนแอปพลิเคชันที่ได้รับอนุญาต และไม่เปลี่ยนเนื้อหาในรีโพซิทอรี หากการตรวจสอบพบปัญหาในส่วนเหล่านั้น ให้จัดการเป็นงานแยก
ขั้นตอนการทำงานที่ถูกต้องตามกฎซึ่งควรพิจารณาก่อนลบ
ไม่ใช่ทุกคีย์ที่ไม่คุ้นเคยจะเป็นภัยคุกคาม พิจารณาสถานการณ์ทั่วไปเหล่านี้ก่อนลงมือ:
- อุปกรณ์ที่คุณไม่ได้ใช้แล้ว แล็ปท็อปหรือเครื่องทำงานเครื่องเก่าอาจยังมีคีย์ลงทะเบียนอยู่ หากคุณยังมีอุปกรณ์นั้น คุณสามารถยืนยันการจับคู่ได้ หากไม่มี การลบมักเป็นทางเลือกที่ถูกต้อง
- เครื่องที่ใช้ร่วมกันหรือของทีม คนอื่นอาจเพิ่มคีย์เพื่อวัตถุประสงค์ที่ถูกต้องตามกฎ ยืนยันกับเจ้าของก่อนลบ
- การตั้งค่าการ deploy หรือระบบอัตโนมัติ หากคีย์ถูกใช้โดยกระบวนการที่ตั้งเวลาไว้ การลบอาจทำให้กระบวนการนั้นหยุด ระบุการพึ่งพาก่อน
- คีย์ที่คุณสร้างเองและลืมไปแล้ว ชื่อและวันที่สร้างมักช่วยเตือนความจำ หากจับคู่กับสิ่งที่คุณเคยตั้งค่าไว้ได้ คุณอาจเลือกเก็บหรือแทนที่แทนการลบ
เมื่อไม่แน่ใจ ลำดับที่ปลอดภัยกว่าคือระบุให้ชัด แล้วแทนที่ด้วยคีย์ที่คุณควบคุม จากนั้นจึงลบรายการเก่า วิธีนี้ทำให้ช่องทางที่ใช้งานได้ยังอยู่ขณะที่คุณปิดช่องทางที่ไม่รู้จัก
สิ่งที่กระบวนการนี้ไม่ได้ทำ
การลบ SSH Key เป็นการดำเนินการเฉพาะจุด ไม่ใช่การล้างบัญชีทั้งหมด มันไม่ได้:
- เพิกถอนแอปพลิเคชัน OAuth หรือการเชื่อมต่ออื่นที่ได้รับอนุญาต;
- ลบ Deploy Key ออกจากรีโพซิทอรี;
- พิสูจน์ว่าใครสร้างคีย์หรือเพราะอะไร;
- ยืนยันว่าไม่มีช่องทางเข้าถึงอื่นอยู่
ถือแต่ละข้อเป็นการตรวจแยก การตรวจสอบคือชุดขั้นตอนเล็ก ๆ ที่ตรวจสอบได้ ไม่ใช่สวิตช์เดียว
การค้นหาชื่อผู้ใช้ช่วยได้ตรงไหน และตรงไหนที่ช่วยไม่ได้
การค้นหาชื่อผู้ใช้สาธารณะช่วยให้คุณเห็นว่าชื่อที่รู้จักนั้นดูจะเชื่อมโยงกับอะไรบนแพลตฟอร์มสาธารณะต่าง ๆ นั่นเป็นบริบทที่มีประโยชน์เมื่อคุณพยายามทำความเข้าใจตัวตนหรือร่องรอยออนไลน์ แต่มันไม่ใช่วิธีตรวจสอบการตั้งค่าบัญชี GitHub และไม่สามารถบอกได้ว่าใครเป็นเจ้าของ SSH Key TraceSeek แอปที่ TruthsSeek นำเสนอ ตรวจสอบชื่อผู้ใช้สาธารณะที่รู้จักบนแพลตฟอร์ม 3,000+ แห่ง และคืนผลการสแกนครั้งแรกภายใน 20–30 วินาที โดยการสแกนครั้งแรกฟรี มันไม่ได้จัดการการตั้งค่า GitHub และการจับคู่สาธารณะเป็นเพียงเบาะแส ไม่ใช่หลักฐานความเป็นเจ้าของ
การจัดการข้อมูลรับรองอย่างปลอดภัย
ห้ามเผยแพร่ Private Key, Token หรือข้อมูลรับรองแบบเต็มในแชท, Issue, ภาพหน้าจอ หรือโพสต์ในฟอรัม หากต้องการความช่วยเหลือในการระบุคีย์ ให้แชร์เฉพาะรายละเอียดที่ไม่เป็นความลับ เช่น ชื่อหรือลายนิ้วมือที่มองเห็นได้ และเฉพาะกับคนที่คุณไว้วางใจ หากสงสัยว่าคีย์ถูกเปิดเผย การลบออกจากบัญชีเป็นเพียงขั้นตอนเดียว การหมุนเวียนสิ่งที่พึ่งพาคีย์นั้นเป็นการตัดสินใจแยกที่คุณควรทำให้รอบคอบ