Erreur «impossible de charger la clé d'hôte» lors de la tentative de recréation des clés d'hôte SSH

13

J'essaie de recréer les clés d'hôte du serveur ssh.

J'ai au moins deux façons de procéder:

  • Avec dpkg-reconfigure

    dpkg-reconfigure openssh-server
    

    Cela fonctionne bien, mais je ne peux pas alors donner la longueur de la clé. Je veux par exemple 4096 pour la clé RSA.

  • Manuellement avec ssh-keygen

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

    Cela me recrée les clés, mais après avoir redémarré le serveur, je reçois le message d'erreur suivant :

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

    j'ai donc vérifié le fichier sshd_config qui s'y trouve:

    HostKey /etc/ssh/ssh_host_rsa_key
    

    correspond parfaitement. J'ai donc vérifié le propriétaire et les droits sur toutes mes clés

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

    Lorsque je supprime toutes les clés et les recrée avec dpkg-reconfigure openssh-server, les clés sont plus petites et ont les mêmes droits de fichier que ci-dessus.

Question: Comment puis-je utiliser dpkg-reconfigureavec keylengh 4096 pour RSA?

Emil Sommer
la source
Veuillez exécuter sshden mode débogage à partir de la ligne de commande ( sudo sshd -d) pour plus d'informations sur le problème et publier la sortie.
David Foerster
@DavidFoerster Cela ressemble à une bonne suggestion. J'ai essayé de recréer le problème en déplaçant temporairement mes clés, en créant de nouvelles clés avec des mots de passe, en arrêtant et en redémarrant ... Je ne reçois pas le message d'erreur de l'OP. C'est le résultat que j'obtiens en livewire@za20:/etc/ssh$ sudo sshd -dsortie sshd re-exec requires execution with an absolute pathSinon j'aurais inclus un exemple dans ma réponse :(
LiveWireBT
Désolé, cela aurait dû l'être sudo /usr/sbin/sshd -d. L'erreur que vous avez obtenue signifie littéralement (mais pas tout à fait claire).
David Foerster
Même si la réponse acceptée résout le problème, je me pose toujours la question finale dans le premier post: comment puis-je utiliser dpkg-reconfigureavec la longueur de clé 4096? Y a-t-il un fichier de configuration quelque part qui contient ces informations? J'ai regardé autour de moi dans les bases de données debconf (en /var/cache/debconf/) mais je n'ai rien trouvé qui ressemblait à la longueur de clé.
ph0t0nix

Réponses:

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

me recrée les clés. mais, après avoir redémarré le serveur, je reçois

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

Vous créez une clé d'hôte avec un mot de passe. Existe-t-il une personnalisation pour déverrouiller cette clé d'hôte? Sinon, je pense que c'est ce à quoi il faut s'attendre: le script qui gère le service démarre, essaie de charger la clé hôte et échoue. Autant que je sache, vous ne devez pas créer de clés d'hôte protégées par des mots de passe.

Si vous souhaitez renforcer votre serveur SSH, je vous recommande de lire https://stribika.github.io/2015/01/04/secure-secure-shell.html la commande utilisée pour créer la clé d'hôte dans ce document est:

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

Mais vous devez lire l'intégralité du document avant d'apporter des modifications.

LiveWireBT
la source
travaux. il suffit de retirer le mot de passe myverylong ici. au fait: très bel article à lire. en fait openssh vient de ubuntu-repro dans mon cas, et n'a pas supporté KexAlgorithms curve25519-sha256 @ libssh.org, diffie-hellman-group-exchange-sha256
Emil Sommer
20

Aucune des réponses ci-dessus n'a fonctionné pour moi. J'ai corrigé mon système Ubuntu en procédant comme suit:

/usr/bin/ssh-keygen -A
MichaelICE
la source
1
CETTE. Ceci est la vraie réponse, comme le confirme la page de manuel de ssh-keygen à propos de l'indicateur "-A": pour chacun des types de clés (rsa1, rsa, dsa, ecdsa et ed25519) pour lesquels les clés d'hôte n'existent pas, générez le clés d'hôte avec le chemin du fichier de clés par défaut, une phrase de passe vide, des bits par défaut pour le type de clé et un commentaire par défaut. Il est utilisé par les scripts d'administration système pour générer de nouvelles clés d'hôte.
BoomShadow
1

Exécutez simplement:

ssh-keygen -t rsa -b 4096

ssh-keygen génère une clé SSH.

  • -t spécifie le type de clé à créer
  • -b spécifie le nombre de bits dans la clé.

Consultez cette page pour plus d'informations.

amrx
la source
Ce n'est pas la réponse. s'il vous plaît voir ma question, je l'ai déjà fait, avec le résultat que la clé hôte n'a pas pu être chargée.
Emil Sommer
3
@EmilSommer Non, exactement est la réponse, manque juste une explication (pourquoi vous obtenez le message d'erreur et ce que cela signifie).
LiveWireBT