Apa SHA256 yang datang pada entri sshd di auth.log?

19

Saat masuk melalui ssh, dapat dilihat hal berikut di 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...

Saya sudah mencoba mencari tahu apa informasi SHA256 ini, tetapi saya tidak dapat menemukan apa pun yang cocok. Pertama saya pikir itu bisa beberapa informasi dari klien (kunci publik, sidik jari, nama host hash dll) Saya terhubung dari, tapi saya tidak menemukan apa pun untuk mengkonfirmasi, baik di sisi server.

Informasi terdekat yang saya temukan ada di sini , tetapi saya tidak mengerti ketika mengatakan "Dan ini adalah contoh menggunakan kunci untuk otentikasi. Ini menunjukkan sidik jari kewy (salah mengeja, mungkin) sebagai hash SHA256 di base64." , karena saya belum menemukan sidik jari kunci yang sesuai dalam bentuk apa pun.

Terima kasih.

Márcio Jales
sumber

Jawaban:

27

Ini adalah SHA256hash untuk kunci publik RSA yang digunakan untuk mengotentikasi sesi SSH.

Ini cara memverifikasinya:

ssh-keygen -lf .ssh/id_rsa.pub

Atau, untuk memverifikasi tanpa ssh-keygen:

  • Hapus ssh-rsaawalan
  • Dekode kunci menggunakan byte base64
  • Dapatkan SHA256hash untuk kunci (sebagai byte, bukan hex)
  • Encode byte menggunakan base64

Sebagai contoh:

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
Joshua Griffiths
sumber
11
Ternyata Anda bisa menggunakanssh-keygen -lf .ssh/id_rsa.pub
Joshua Griffiths
2
Saya pikir komentar Anda adalah jawaban yang terpisah dan lebih baik, yang harus Anda tambahkan secara terpisah.
Hugh W
1
+1 hingga ditambahkan ssh-keygen -lf .ssh/id_rsa.pubsebagai jawaban terpisah. Lebih baik daripada pengodean manual.
Ilya Bobyr
2

Punya pertanyaan yang sama di macOS 10.13.6, di mana jawaban Anda hanya membutuhkan beberapa tweak:

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

Terima kasih banyak.

stoutyhk
sumber