ดูเหมือนว่า openssh ได้เปลี่ยนวิธีการแสดงลายนิ้วมือที่สำคัญ
ฉันพยายาม ssh จากเครื่องไคลเอ็นต์ไปยังเซิร์ฟเวอร์:
- ลูกค้า: Ubuntu 14.04 ใช้งาน OpenSSH 6.6.1
- เซิร์ฟเวอร์: FreeBSD กำลังเรียกใช้ OpenSSH 7.2p2
ลูกค้ารายงานแฮช md5 ของคีย์เซิร์ฟเวอร์เป็นลำดับเลขฐานสิบหก 16 คู่ดังนี้:
a7:b1:3e:3d:84:24:a2:5a:91:5f:6f:e9:cf:dd:2b:6a
เซิร์ฟเวอร์ใช้ค่าเริ่มต้นในการใช้แฮช sha256 แต่ต้องขอบคุณคำตอบนี้ฉันสามารถบังคับให้แฮช sha1 ทำได้โดยการเรียกใช้:
[root@host /etc/ssh]# ssh-keygen -l -E sha1 -f ssh_host_ecdsa_key.pub
ฉันต้องการให้ผลลัพธ์เป็นแบบนี้:
a7:b1:3e:3d:84:24:a2:5a:91:5f:6f:e9:cf:dd:2b:6a
แต่ฉันได้รับสิ่งนี้แทน:
256 SHA1:KIh0ejR4O+RqrSq7JdGAASddRfI root@host.local (ECDSA)
สำหรับฉันแล้วดูเหมือนว่าลายนิ้วมือที่เข้ารหัส base64 จะถูกแสดงแทนเลขฐานสิบหก
ฉันจะรับเช็คซัมของคีย์เซิร์ฟเวอร์ในรูปแบบเดียวกับที่รายงานโดยไคลเอนต์ (เก่ากว่า) (เลขฐานสิบหกที่คั่นด้วยโคลอน, แฮช sha1) เพื่อตรวจสอบว่าเหมือนกันได้อย่างไร
แก้ไข: SSH เวอร์ชั่นเก่าให้การตรวจสอบmd5 ไม่ใช่การตรวจสอบ sha1 อย่างที่ฉันคิดผิด การใช้เช็คซัมนั้น (ตามคำตอบที่ยอมรับในขณะนี้ควรระบุ) ในตัวเลือก -E จะให้เอาต์พุตที่ต้องการ