ลายนิ้วมือของปุ่ม RSA - GitHub ไม่ตรงกัน?
ฉันสงสัยว่าลายนิ้วมือ RSA เหล่านั้นทำงานอย่างไร ฉันมีบัญชี GitHub และสร้างคู่คีย์ RSA เพื่อตั้งค่าการเชื่อมต่อ ssh จากนั้นทำตามคำแนะนำ ... ครั้งแรกที่ฉันเชื่อมต่อกับ GitHub ของฉันมันให้ฉันและลายนิ้วมือ RSA SHA256:nThbkt6JwfF............
ตกลงฉันกำลังทำสิ่งนี้สำหรับกระบวนการเรียนรู้ดังนั้นฉันจึง Google ว่านี่หมายถึงอะไรและพยายามสร้างลายนิ้วมือจากคีย์ RSA ของฉัน - และมันควรจะเป็น ตรงกับบัญชี GitHub ของฉันใช่ไหม แต่มันไม่ได้สิ่งที่ฉันได้รับหลังจากใช้: ssh-keygen -lf ~/.ssh/id_rsa
ไม่เหมือนกันSHA256: t6Rjff8djE........
ฉันทำอะไรผิดที่นี่ในแนวทางของฉันเพื่อดูว่าลายนิ้วมือที่ให้มานั้นถูกต้องหรือไม่?
คำตอบ
SSH ต้องใช้คีย์สาธารณะและคีย์ส่วนตัวสองคู่ หนึ่งในฝั่งเซิร์ฟเวอร์และอีกหนึ่งฝั่งไคลเอนต์ พูดง่ายๆก็คือเมื่อคุณต้องการเข้ารหัสบางอย่างไปยังเซิร์ฟเวอร์ที่คุณกำลังใช้คีย์สาธารณะของเซิร์ฟเวอร์ (จะถูกถอดรหัสทางฝั่งเซิร์ฟเวอร์โดยใช้คีย์ส่วนตัวของเซิร์ฟเวอร์) เมื่อเซิร์ฟเวอร์ส่งบางอย่างถึงคุณมันกำลังใช้คีย์สาธารณะของคุณ (คุณกำลังถอดรหัสโดยใช้คีย์ส่วนตัวที่เก็บไว้ในเครื่องของคุณ)
เซิร์ฟเวอร์แสดงลายนิ้วมือ (ไม่ใช่ลายนิ้วมือของใบรับรองของคุณ) คุณจึงสามารถตรวจสอบคีย์สาธารณะที่เซิร์ฟเวอร์นำเสนอได้ โดยปกติลายนิ้วมือจะถูกแคชดังนั้น ssh จะไม่แจ้งให้คุณทราบในครั้งต่อไป
เมื่อคุณกำหนดค่าคีย์สาธารณะของคุณบน github โดยพื้นฐานแล้วคุณจะบอก github ว่าคุณจะใช้คีย์ใดในการพิสูจน์ตัวตนและแลกเปลี่ยนคีย์ Github“ เชื่อใจ” ว่าคีย์นี้มาจากคุณเพราะคุณยืนยันตัวตนด้วยรหัสผ่านเพื่ออัปโหลด ในทางทฤษฎีมีเพียงคุณเท่านั้นที่สามารถถอดรหัสข้อมูลของคุณได้เนื่องจากคุณมีคีย์ส่วนตัวที่เกี่ยวข้องเท่านั้น การอัปโหลดคีย์คุณกำลังสร้างความสัมพันธ์ที่เชื่อถือได้ระหว่างเครื่องของคุณและเซิร์ฟเวอร์ GitHub
หากลายนิ้วมือของคีย์ที่คุณอัปโหลดแตกต่างจากลายนิ้วมือของคีย์บนเครื่องของคุณส่วนใหญ่อาจเกิดจาก:
- พิมพ์ลายนิ้วมือผิดคีย์
- คีย์ดั้งเดิมถูกเขียนทับโดยการรันคำสั่ง generation หลาย ๆ ครั้ง
- ลายนิ้วมือที่สับสนที่มาจากเซิร์ฟเวอร์ (ลายนิ้วมือเซิร์ฟเวอร์) ด้วยลายนิ้วมือใบรับรองของคุณเอง