Tampaknya openssh telah mengubah cara menampilkan sidik jari kunci.
Saya mencoba ssh dari mesin klien ke server:
- client: ubuntu 14.04 menjalankan OpenSSH 6.6.1
- server: FreeBSD menjalankan OpenSSH 7.2p2.
Klien melaporkan hash md5 dari kunci server sebagai urutan 16 pasang angka hex, seperti ini:
a7:b1:3e:3d:84:24:a2:5a:91:5f:6f:e9:cf:dd:2b:6a
Server secara default menggunakan hash sha256, tetapi berkat jawaban ini saya bisa memaksanya untuk memberikan hash sha1 dengan menjalankan:
[root@host /etc/ssh]# ssh-keygen -l -E sha1 -f ssh_host_ecdsa_key.pub
Saya ingin hasilnya terlihat seperti ini:
a7:b1:3e:3d:84:24:a2:5a:91:5f:6f:e9:cf:dd:2b:6a
tetapi sebaliknya saya mendapatkan ini:
256 SHA1:KIh0ejR4O+RqrSq7JdGAASddRfI [email protected] (ECDSA)
Bagi saya itu seperti versi sidik jari base64 yang dikodekan sekarang sedang ditampilkan alih-alih digit hex.
Bagaimana saya bisa mendapatkan checksum dari kunci server dalam format yang sama seperti yang dilaporkan oleh klien (yang lebih tua) (angka hex yang dipisahkan dengan titik dua, sha1 hash) untuk mengecek apakah semuanya sama?
EDIT: Versi lama SSH memberikan checksum md5 , bukan checksum sha1 seperti yang saya pikir salah. Menggunakan checksum itu (sebagai jawaban yang sekarang diterima harus menyatakan) dalam opsi -E memberikan output yang diinginkan.
sha1
bukanmd5
! Saya sudah ketinggalan zaman versi Ubuntu dengan openssh-6.9, tetapi berfungsi dengan baik.Ternyata, Cookbook SSH memiliki cara untuk menghasilkan kunci secara manual dalam format hex yang lebih lama. Saya menggunakan ini di server freebsd.
Hancurkan ini:
cetak kolom kedua (dipisahkan spasi) di "key.pub", yang merupakan kunci itu sendiri
kuncinya adalah base64 disandikan. Ini akan menampilkan byte kunci yang sebenarnya
ini setara dengan freebsd dari 'md5sum -b' yang ditentukan dalam resep di halaman buku resep ssh
Ada dua perintah sed di sini:
ganti setiap pasangan karakter di telepon (berkat bendera 'g' di akhir) dengan pasangan yang sama diikuti oleh titik dua
hapus semua trailing colon (ganti sebuah colon diikuti oleh spasi diikuti oleh apapun hingga akhir baris tanpa apa-apa).
sumber
Dalam kasus seperti ini saya menggunakan skrip kecil berikut (diuji pada Debian dan Ubuntu):
Contoh penggunaan:
sumber