Saya mencoba untuk memutakhirkan server ssh saya dari kunci RSA 2048-bit ke kunci yang lebih besar, karena rekomendasi segera menghapus tombol 2048-bit segera.
Saya membuat kunci baru, lalu menambahkannya ke sshd config, seperti ini:
HostKey / etc / ssh / ssh_host_rsa_key (kunci 2-bit lama dulu) HostKey / etc / ssh / ssh_host_rsa4096_key (kunci baru yang lebih besar ke-2 )
Setelah restart sshd
, saya ssh ke tuan rumah, saya tidak mendapatkan peringatan identifikasi berubah, namun baru juga tidak di-cache di ~/.ssh/known_hosts
. Jika saya meletakkan garis dalam urutan yang berlawanan, saya mendapatkan identifikasi berubah peringatan. Demikian pula, ketika saya menambahkan kunci ed25519, tidak peduli bagaimana saya memasukkannya, klien tidak menambahkan kunci baru ke file host yang dikenal.
Hal ini tampaknya membuat rollover kunci host SSH tidak mungkin — sulit untuk dipercaya bahwa memang itulah masalahnya, mengingat keamanan secara rutin memerlukan peningkatan kunci.
Saya tahu Anda hanya bisa menukar kunci, maka setiap klien harus menjalankan ssh-keygen -R
untuk menghapus kunci lama, lalu memverifikasi secara manual dan menerima kunci baru — tapi itu sangat menyebalkan, terutama jika Anda memiliki banyak klien yang terhubung atau tidak mengelola semua klien. Belum lagi, jika Anda tidak mengelola klien, ada peluang yang sangat bagus mereka tidak akan benar-benar memeriksa kunci host dan malah menekan Y — jadi upaya untuk meningkatkan keamanan kemungkinan akan benar-benar membuka Anda untuk man-in- serangan tengah-gantinya.
Apakah ada cara untuk membuat pemutakhiran kunci host SSH berfungsi? Artinya, klien harus mempelajari kunci baru yang lebih aman (dan juga semoga tidak mempelajari kunci usang). Dan tanpa memberikan kunci host berubah peringatan man-in-the-middle.