Apa yang setara dengan CentOS dari ssh-keygen -E?

3

Klien ssh bertanya kepada saya apakah sidik jari server baru tidak apa-apa. Sidik jari ini adalah sha256.

Server ssh dapat memberi tahu saya sidik jarinya

ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key

Namun ini dalam format md5.

Dokumentasi untuk ssh-keygenmengatakan bahwa ini adalah perbaikan

ssh-keygen -l -E sha256 -f /etc/ssh/ssh_host_ecdsa_key

Namun -Eopsi ini sepertinya tidak tersedia di CentOS. Saya dapat memberikan kompensasi pada klien dengan

ssh -o FingerprintHash=md5 user@newserver

Namun praktik yang baik mengharuskan kami menghindari MD5, dan itu akan menyederhanakan otomatisasi dan alur kerja (pengujian di berbagai lingkungan / distribusi) jika saya bisa menangani ini secara seragam.

Bagaimana saya bisa mendapatkan sidik jari sha256 dari kunci ssh pada CentOS?

Spraff
sumber
1
Nitpick kecil: SSH tidak menggunakan SSL.
Daniel B

Jawaban:

4

Versi OpenSSH dikemas oleh CentOS adalah cara terlalu tua untuk fitur ini.

Alternatifnya adalah menggunakan sha256sumsecara langsung, karena 'sidik jari' hanyalah hash dari kunci mentah:

awk '{print $2}' foo.pub | base64 -d | sha256sum | xxd -p -r | base64

Hash MD5 dapat diperoleh dengan menggunakan:

awk '{print $2}' foo.pub | base64 -d | md5sum

Atau, Anda dapat melewati seluruh langkah 'sidik jari' dan 'konfirmasi manual', dan cukup salin kunci publik yang sebenarnya ke ~/.ssh/known_hosts. (Jangan lupa untuk menambahkan alamat IP di depannya).

echo "192.168.1.2 $(cat foo.pub)" >> ~/.ssh/known_hosts

Dengan begitu kuncinya akan diverifikasi sebelumnya, demikian dikatakan. Ini tampaknya menjadi metode yang mudah untuk diotomatisasi.

grawity
sumber