Errore `Impossibile caricare la chiave host` quando si tenta di ricreare le chiavi host SSH


13

Sto cercando di ricreare le chiavi dell'host ssh-server.

Ho almeno due modi per farlo:

  • Con dpkg-reconfigure

    dpkg-reconfigure openssh-server
    

    Funziona bene, ma non posso dare la lunghezza della chiave allora. Voglio ad esempio 4096 per la chiave RSA.

  • Manualmente con ssh-keygen

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

    Questo mi ricrea le chiavi, ma dopo aver riavviato il server, ricevo il seguente messaggio di errore :

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

    così ho controllato il file sshd_config che cosa c'è dentro:

    HostKey /etc/ssh/ssh_host_rsa_key
    

    si abbina perfettamente. Quindi, ho controllato il proprietario e i diritti su tutte le mie chiavi

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

    Quando rimuovo tutte le chiavi e le ricrea con dpkg-reconfigure openssh-server, le chiavi sono più piccole e hanno gli stessi diritti sui file come sopra.

Domanda: Come posso usare dpkg-reconfigurecon keylengh 4096 per RSA?


Eseguire sshdin modalità debug dalla riga di comando ( sudo sshd -d) per ulteriori informazioni sul problema e pubblicare l'output.
David Foerster,

@DavidFoerster Sembra un buon suggerimento. Ho provato a ricreare il problema spostando temporaneamente le mie chiavi, creando nuove chiavi con password, arrestando e riavviando ... Non ricevo il messaggio di errore dell'OP. Questo è il risultato che ottengo in livewire@za20:/etc/ssh$ sudo sshd -duscita sshd re-exec requires execution with an absolute pathAltrimenti avrei incluso un esempio nella mia risposta :(
LiveWireBT

Scusa, avrebbe dovuto essere sudo /usr/sbin/sshd -d. L'errore che hai è inteso letteralmente (anche se non abbastanza chiaro).
David Foerster,

Anche se la risposta accettata risolve il problema, mi sto ancora chiedendo quale sia la domanda finale nel primo post: Come posso usare dpkg-reconfigurecon la lunghezza chiave 4096? Esiste un file di configurazione da qualche parte che contiene queste informazioni? Mi sono guardato intorno nei database debconf (in /var/cache/debconf/) ma non ho trovato nulla che assomigliasse alla lunghezza della chiave.
ph0t0nix,

Risposte:


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

mi ricrea le chiavi. ma, dopo aver riavviato il server, ricevo

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

Si crea una hostkey con una password. C'è qualche personalizzazione per sbloccare quella chiave host? In caso contrario, penso che sia quello che ci si aspetta: lo script che gestisce il servizio si avvia, tenta di caricare la chiave host e non riesce. Per quanto ne so non dovresti creare hostkey protetti con password.

Se sei interessato a rafforzare il tuo server SSH, ti consiglio di leggere https://stribika.github.io/2015/01/04/secure-secure-shell.html il comando utilizzato per creare la hostkey in quel documento è:

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

Ma dovresti leggere l'intero documento prima di apportare eventuali modifiche.


lavori. semplicemente rimuovendo la myverylongpasswordqui. a proposito: articolo davvero carino da leggere. infatti openssh proviene da Ubuntu Repro nel mio caso, e non supportava KexAlgorithms curve25519-sha256 @ libssh.org, diffie-hellman-group-exchange-sha256
Emil Sommer

20

Nessuna delle risposte sopra ha funzionato per me. Ho risolto il mio sistema Ubuntu procedendo come segue:

/usr/bin/ssh-keygen -A

1
QUESTO. Questa è la vera risposta, come confermato dalla manpage di ssh-keygen su quel flag "-A": Per ciascuno dei tipi di chiave (rsa1, rsa, dsa, ecdsa ed ed25519) per i quali non esistono chiavi host, generare il chiavi host con il percorso del file chiave predefinito, una passphrase vuota, bit predefiniti per il tipo di chiave e commento predefinito. Viene utilizzato dagli script di amministrazione del sistema per generare nuove chiavi host.
BoomShadow

1

Esegui semplicemente:

ssh-keygen -t rsa -b 4096

ssh-keygen genera una chiave SSH.

  • -t specifica il tipo di chiave da creare
  • -b specifica il numero di bit nella chiave.

Vedi questa pagina per maggiori informazioni.


questa non è la risposta. per favore vedi la mia domanda, l'ho già fatto, con il risultato che hostkey non è stato caricato.
Emil Sommer,

3
@EmilSommer No, questa è esattamente la risposta, manca solo una spiegazione (perché ricevi il messaggio di errore e cosa significa).
LiveWireBT
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.