Saat menghubungkan ke server baru / tidak dikenal (dengan OpenSSH terbaru), misalnya:
ssh example.com
Anda mendapatkan sidik jari seperti di bawah ini:
The authenticity of host 'example.org (192.0.2.42)' can't be established.
RSA key fingerprint is SHA256:7KMZvJiITZ+HbOyqjNPV5AeC5As2GSZES5baxy1NIe4.
Are you sure you want to continue connecting (yes/no)?
Namun, sidik jari biasanya diberikan untuk server dalam bentuk ini:
f6:fc:1c:03:17:5f:67:4f:1f:0b:50:5a:9f:f9:30:e5
Bagaimana saya bisa memeriksa keaslian (tanpa mengganggu admin server untuk memberikan sidik jari SHA256)?
Jawaban:
Sebelumnya sidik jari diberikan sebagai hash md5 hexed. Dimulai dengan OpenSSH 6.8 sidik jari sekarang ditampilkan sebagai base64 SHA256 (secara default). Anda tidak dapat membandingkan ini secara langsung.
Mereka juga menambahkan opsi konfigurasi baru
FingerprintHash
. Anda bisa meletakkannyadi Anda
~/.ssh/config
untuk kembali ke default lama ( kurang aman ) atau cukup gunakan opsi ini untuk sekali pakai:yang akan memberikan sidik jari sebagai
Semoga admin server menyediakan kedua jenis sidik jari dalam waktu dekat.
SUNTING:
Seperti yang diberikan di forum Arch Linux , ada juga opsi ketiga:
SUNTING:
Anda dapat menghasilkan hash kunci arbitrer seperti yang diberikan pada OpenSSH Cookbook :
Ambil kuncinya:
ssh-keyscan example.org > key.pub
/etc/ssh
Hasilkan hash:
key.pub
atau jalankanssh-keyscan -t rsa example.org > key.pub
ssh-keygen -l -f key.pub
(hash default, tergantung pada versi OpenSSH)ssh-keygen -l -f key.pub -E md5
(md5 tentang OpenSSH saat ini)awk '{print $2}' ssh_host_rsa_key.pub | base64 -d | sha256sum -b | awk '{print $1}' | xxd -r -p | base64
(sha256 pada OpenSSH lama)awk '{print $3}'
untuk versi yang lebih baru dari ssh-keyscan karena formatnya berubah)sumber
ssh-keygen -lf
pada server hanya memberi saya cetak md5, dan untuk kehidupan saya, saya tidak dapat menemukan cara mendapatkan sha256 baik di halaman manual atau www sejauh ini ...awk
1-liner Anda (tidak cocok dengan hash yang ditunjukkan oleh klien saya)sha256sum -b | awk '{print $1}' | xxd -r -p
dapat diganti denganopenssl sha256 -binary
tidak memerlukan vim diinstal. Perintah yang dihasilkan adalah:awk '{print $2}' ~/.ssh/id_rsa.pub | base64 -d | openssl sha256 -binary | base64
Hanya membuat skrip bash kecil yang akan mencetak tabel dengan sidik jari untuk semua kunci sandi yang diizinkan di server (sesuai dengan
/etc/ssh/sshd_config
) di keduanyaSSH-256
danMD5
algo. Berikut adalah contoh output:Script akan berjalan juga di server dengan
SSH
versi di bawah ini6.8
(sebelum-E md5
opsi ditambahkan).Sunting: Versi yang diperbarui untuk versi SSH yang lebih baru lagi yang mengganti cipher standar sekarang dengan dukungan gambar ASCII.
Ini hanya cukup cetak menggunakan informasi dari
JonnyJD
jawaban. Terima kasih.sumber
ternyata ssh-keygen (beberapa saat setelah versi 6.6; mungkin 6.8) memiliki
-E md5
opsi yang akan membuatnya mencetak sidik jari sebagai sidik jari md5. Jadi, jika Anda dapat secara independen mengambil file kunci publik dari server, Anda dapat mengumpankannya kessh-keygen -E md5 -l -f ssh_host_rsa_key.pub
dan mendapatkan sidik jari yang Anda kenal.sumber
One-liner berikut berfungsi (setidaknya) pada
Ubuntu 16.04,18.04 / Centos >= 7
(Diuji dengan server:
openssh 3.9
-openssh 7.4
)Keluaran:
sumber
mencoba memodifikasi untuk memasukkan seni acak ke dalam tabel:
... tapi saya bukan programmer sebenarnya dan skrip tidak berfungsi seperti yang diharapkan. Akan menghargai jika ada yang bisa membantu memperbaiki (juga pembersihan). Akan menyenangkan untuk memiliki sha256 dan md5 gambar seni acak berdampingan untuk menggunakan ruang lebih efisien. Saya juga memodifikasi perintah md5 dan sha256 karena yang asli tidak berfungsi untuk saya (mungkin sistem yang terlalu baru) - hanya sha256 yang dimasukkan ke dalam tabel dengan tanda "=" di bagian akhir yang bukan bagian dari sidik jari aktual dan tidak dapat menghapusnya.
(maaf saya tidak bisa berkomentar karena saya mendaftar baru-baru ini)
sumber