SHA256 ที่มากับรายการ sshd ใน auth.log คืออะไร


20

เมื่อเข้าสู่ระบบผ่าน ssh จะเห็นสิ่งต่อไปนี้ใน auth.log:

Dec 14 16:29:30 app sshd[22781]: Accepted publickey for dev from XXX.XXX.XX.XXX port XXXXX ssh2: RSA SHA256:pO8i...

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

ข้อมูลที่ใกล้เคียงที่สุดที่ฉันพบอยู่ที่นี่แต่ฉันไม่เข้าใจเมื่อมีข้อความระบุว่า "และนี่คือตัวอย่างการใช้คีย์สำหรับการตรวจสอบความถูกต้องมันแสดงลายนิ้วมือที่เฉียบคม (สะกดผิดอาจ) เนื่องจากฉันไม่พบลายนิ้วมือคีย์ที่เกี่ยวข้องทุกชนิด

ขอบคุณ.

คำตอบ:


27

นี่คือSHA256แฮชสำหรับคีย์สาธารณะ RSA ซึ่งใช้เพื่อตรวจสอบสิทธิ์เซสชัน SSH

นี่คือวิธีการยืนยัน:

ssh-keygen -lf .ssh/id_rsa.pub

หรือเพื่อยืนยันโดยไม่ต้องssh-keygen:

  • ลบssh-rsaคำนำหน้า
  • ถอดรหัสคีย์เป็นไบต์ที่ใช้ base64
  • รับSHA256แฮชสำหรับคีย์ (เป็นไบต์ไม่ใช่ hex)
  • เข้ารหัสไบต์โดยใช้ base64

ตัวอย่างเช่น:

cat .ssh/id_rsa.pub    |
    awk '{ print $2 }' | # Only the actual key data without prefix or comments
    base64 -d          | # decode as base64
    sha256sum          | # SHA256 hash (returns hex)
    awk '{ print $1 }' | # only the hex data
    xxd -r -p          | # hex to bytes
    base64               # encode as base64

11
ปรากฎว่าคุณสามารถใช้ssh-keygen -lf .ssh/id_rsa.pub
Joshua Griffiths

2
ฉันคิดว่าความคิดเห็นของคุณเป็นคำตอบที่แยกต่างหากและดีขึ้นทุกรอบซึ่งคุณควรเพิ่มแยกต่างหาก
Hugh W

1
+1 เพื่อเพิ่มssh-keygen -lf .ssh/id_rsa.pubเป็นคำตอบแยกต่างหาก มันจะดีกว่าการเข้ารหัสด้วยตนเอง
Ilya Bobyr

2

มีคำถามเดียวกันใน macOS 10.13.6 ซึ่งคำตอบของคุณต้องการการปรับแต่งสองสามข้อ:

cat .ssh/id_rsa.pub    |
    awk '{ print $2 }' | # Only the actual key data without prefix or comments
    base64 -D          | # decode as base64
    shasum -a 256      | # SHA256 hash (returns hex)
    awk '{ print $1 }' | # only the hex data
    xxd -r -p          | # hex to bytes
    base64               # encode as base64

ขอบคุณมาก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.