Kesalahan `tidak dapat memuat kunci host` saat mencoba membuat kembali kunci host SSH

13

Saya mencoba membuat ulang kunci host ssh-server.

Saya memiliki setidaknya dua cara untuk melakukan ini:

  • Dengan dpkg-konfigurasi ulang

    dpkg-reconfigure openssh-server
    

    Ini berfungsi dengan baik, tapi saya tidak bisa memberikan kunci panjangnya. Saya ingin misalnya 4096 untuk kunci RSA.

  • Secara manual dengan ssh-keygen

    sudo ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N 'myverylongpasswordhere' -b 4096 -t rsa
    

    Ini membuat ulang saya kunci, tetapi setelah me-restart server, saya menerima pesan kesalahan berikut :

    could not load host key: /etc/ssh/ssh_host_rsa_key
    

    jadi saya memeriksa file sshd_config apa yang ada di sana:

    HostKey /etc/ssh/ssh_host_rsa_key
    

    sangat cocok. Jadi, saya memeriksa pemilik dan hak untuk semua kunci saya

    -rw------- 1 root root 3326 Mär 24 08:57 ssh_host_rsa_key
    

    Ketika saya menghapus semua kunci dan membuatnya kembali dpkg-reconfigure openssh-server, kunci lebih kecil dan memiliki hak file yang sama seperti di atas.

Pertanyaan: Bagaimana saya bisa menggunakan dpkg-reconfigurekeylengh 4096 untuk RSA?

Emil Sommer
sumber
Silakan jalankan sshddalam mode debug dari baris perintah ( sudo sshd -d) untuk info lebih lanjut tentang masalah ini dan memposting output.
David Foerster
@ DavidFoerster Itu sepertinya saran yang bagus. Saya mencoba menciptakan kembali masalah dengan memindahkan kunci saya sementara, membuat kunci baru dengan kata sandi, berhenti dan memulai kembali ... Saya tidak mendapatkan pesan kesalahan OP. Ini adalah hasil yang saya dapatkan livewire@za20:/etc/ssh$ sudo sshd -doutput sshd re-exec requires execution with an absolute pathKalau tidak, saya akan memasukkan contoh dalam jawaban saya :(
LiveWireBT
Maaf, seharusnya begitu sudo /usr/sbin/sshd -d. Kesalahan yang Anda dapatkan secara harfiah (meskipun tidak cukup jelas).
David Foerster
Meskipun jawaban yang diterima memecahkan masalah, saya masih bertanya-tanya tentang pertanyaan terakhir di posting pertama: Bagaimana saya bisa menggunakan dpkg-reconfiguredengan keylength 4096? Apakah ada file konfigurasi di suatu tempat yang berisi info ini? Saya mencari-cari di database debconf (dalam /var/cache/debconf/) tetapi tidak menemukan apa pun yang tampak seperti keylength.
ph0t0nix

Jawaban:

8
sudo ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N 'myverylongpasswordhere' -b 4096 -t rsa

membuat ulang saya kunci. tetapi, setelah me-restart server, saya menerima

could not load host key: /etc/ssh/ssh_host_rsa_key

Anda membuat kunci host dengan kata sandi. Apakah ada penyesuaian untuk membuka kunci host itu? Jika tidak, maka saya pikir itulah yang diharapkan: skrip yang mengelola layanan dimulai, mencoba memuat hostkey, dan gagal. Sejauh yang saya tahu Anda tidak harus membuat hostkeys yang dilindungi dengan kata sandi.

Jika Anda tertarik untuk memperkuat server SSH Anda, maka saya sarankan membaca https://stribika.github.io/2015/01/04/secure-secure-shell.html perintah yang digunakan untuk membuat hostkey dalam dokumen itu adalah:

ssh-keygen -t rsa -b 4096 -f ssh_host_rsa_key

Tetapi Anda harus membaca seluruh dokumen sebelum melakukan perubahan.

LiveWireBT
sumber
bekerja. hanya menghapus kata sandi sangat panjang saya di sini. omong-omong: artikel yang sangat bagus untuk dibaca. sebenarnya openssh berasal dari ubuntu-repro dalam kasus saya, dan tidak mendukung kurva KexAlgorithms25519-sha256 @ libssh.org, diffie-hellman-group-exchange-sha256
Emil Sommer
20

Tidak ada jawaban di atas yang berfungsi untuk saya. Saya memperbaiki sistem ubuntu saya dengan melakukan hal berikut:

/usr/bin/ssh-keygen -A
MichaelICE
sumber
1
INI. Ini adalah jawaban yang sebenarnya, seperti yang dikonfirmasi oleh halaman manual untuk ssh-keygen tentang bendera "-A": Untuk masing-masing jenis kunci (rsa1, rsa, dsa, ecdsa dan ed25519) di mana kunci host tidak ada, hasilkan tombol host dengan jalur file kunci default, frasa sandi kosong, bit default untuk jenis kunci, dan komentar default. Ini digunakan oleh skrip administrasi sistem untuk menghasilkan kunci host baru.
BoomShadow
1

Cukup jalankan:

ssh-keygen -t rsa -b 4096

ssh-keygen menghasilkan kunci SSH.

  • -t menentukan jenis kunci yang akan dibuat
  • -b menentukan jumlah bit dalam kunci.

Lihat halaman ini untuk informasi lebih lanjut.

amrx
sumber
ini bukan jawabannya. tolong lihat pertanyaan saya, saya sudah melakukan ini, dengan pertanyaan bahwa hostkey tidak dapat dimuat.
Emil Sommer
3
@EmilSommer Tidak, itu persis adalah jawabannya, hanya hilang penjelasan (mengapa Anda mendapatkan pesan kesalahan dan apa artinya).
LiveWireBT