ลายนิ้วมือของปุ่ม RSA - GitHub ไม่ตรงกัน?

Aug 20 2020

ฉันสงสัยว่าลายนิ้วมือ RSA เหล่านั้นทำงานอย่างไร ฉันมีบัญชี GitHub และสร้างคู่คีย์ RSA เพื่อตั้งค่าการเชื่อมต่อ ssh จากนั้นทำตามคำแนะนำ ... ครั้งแรกที่ฉันเชื่อมต่อกับ GitHub ของฉันมันให้ฉันและลายนิ้วมือ RSA SHA256:nThbkt6JwfF............ตกลงฉันกำลังทำสิ่งนี้สำหรับกระบวนการเรียนรู้ดังนั้นฉันจึง Google ว่านี่หมายถึงอะไรและพยายามสร้างลายนิ้วมือจากคีย์ RSA ของฉัน - และมันควรจะเป็น ตรงกับบัญชี GitHub ของฉันใช่ไหม แต่มันไม่ได้สิ่งที่ฉันได้รับหลังจากใช้: ssh-keygen -lf ~/.ssh/id_rsa ไม่เหมือนกันSHA256: t6Rjff8djE........

ฉันทำอะไรผิดที่นี่ในแนวทางของฉันเพื่อดูว่าลายนิ้วมือที่ให้มานั้นถูกต้องหรือไม่?

คำตอบ

1 KamilKurzynowski Aug 20 2020 at 16:01

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

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

เมื่อคุณกำหนดค่าคีย์สาธารณะของคุณบน github โดยพื้นฐานแล้วคุณจะบอก github ว่าคุณจะใช้คีย์ใดในการพิสูจน์ตัวตนและแลกเปลี่ยนคีย์ Github“ เชื่อใจ” ว่าคีย์นี้มาจากคุณเพราะคุณยืนยันตัวตนด้วยรหัสผ่านเพื่ออัปโหลด ในทางทฤษฎีมีเพียงคุณเท่านั้นที่สามารถถอดรหัสข้อมูลของคุณได้เนื่องจากคุณมีคีย์ส่วนตัวที่เกี่ยวข้องเท่านั้น การอัปโหลดคีย์คุณกำลังสร้างความสัมพันธ์ที่เชื่อถือได้ระหว่างเครื่องของคุณและเซิร์ฟเวอร์ GitHub

หากลายนิ้วมือของคีย์ที่คุณอัปโหลดแตกต่างจากลายนิ้วมือของคีย์บนเครื่องของคุณส่วนใหญ่อาจเกิดจาก:

  1. พิมพ์ลายนิ้วมือผิดคีย์
  2. คีย์ดั้งเดิมถูกเขียนทับโดยการรันคำสั่ง generation หลาย ๆ ครั้ง
  3. ลายนิ้วมือที่สับสนที่มาจากเซิร์ฟเวอร์ (ลายนิ้วมือเซิร์ฟเวอร์) ด้วยลายนิ้วมือใบรับรองของคุณเอง