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?


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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.