Partager via


Le client OpenSSH ne peut pas se connecter à un serveur via SSH : erreurs « aucun type de clé hôte correspondant trouvé »

Cet article traite de plusieurs causes et solutions courantes lors de la rencontre d’erreurs de connexion OpenSSH liées aux incompatibilités d’algorithme de clé hôte sur les systèmes Windows.

Lorsque vous vous connectez à un serveur via Secure Shell (SSH), vous pouvez rencontrer des erreurs telles que :

  • Impossible de négocier avec <le serveur> : aucun type de clé hôte correspondant n’a été trouvé.

  • Algorithme de clé d’hôte : (aucune correspondance)

  • Autorisation refusée (clé publique).

  • Le serveur a refusé notre clé.

Ces erreurs indiquent généralement des incompatibilités dans les algorithmes pris en charge, les problèmes d’autorisations ou les problèmes de sécurité.

Cause 1 : Algorithme RSA désactivé dans les versions d’OpenSSH mises à jour

OpenSSH 8.8 et versions ultérieures désactivent l’algorithme non sécurisé ssh-rsa par défaut, ce qui entraîne l’échec des tentatives de connexion des clients hérités dépendants des clés RSA.

Résolution

  1. Sauvegardez la configuration existante :

    Copy-Item "C:\ProgramData\ssh\sshd_config" "C:\ProgramData\ssh\sshd_config.bak" 
    
  2. Modifiez le fichier sshd_config :

    1. Ouvrez le Bloc-notes en tant qu’administrateur.

    2. Utilisez la commande suivante pour ouvrir le fichier sshd_config :

      notepad "C:\ProgramData\ssh\sshd_config"
      
    3. Ajoutez les lignes suivantes à la fin du fichier :

      PubkeyAcceptedAlgorithms +ssh-rsa 
      HostKeyAlgorithms +ssh-rsa
      
  3. Redémarrez le service OpenSSH :

    Restart-Service sshd
    
  4. Vérifiez la connexion SSH :

    ssh -v user@server.example.com 
    

Cause 2 : Fichier authorized_keys manquant ou incorrect, ou permissions de fichier incorrectes

Les échecs de connexion se produisent en raison d’un fichier authorized_keys manquant ou incorrect ou de permissions de fichier incorrectes, ce qui génère des erreurs « Permission refusée ».

Résolution

  1. Vérifiez que le fichier authorized_keys existe :

    Chemin d’accès au fichier : C :\ProgramData\ssh\administrators_authorized_keys

    Placez correctement vos clés publiques dans ce fichier.

  2. Autorisations de fichier correctes :

    Vérifiez que seuls les administrateurs disposent d’autorisations d’écriture dans le fichier :

    icacls.exe "C:\ProgramData\ssh\administrators_authorized_keys" /inheritance:r /grant "Administrators:F"
    
  3. Redémarrez le service OpenSSH :

    net stop sshd 
    net start sshd 
    

Cause 3 : Les clés privées stockées dans le Registre persistent entre les sessions provoquant des risques de sécurité

Les clés privées stockées par le service ssh-agent d’OpenSSH persistent entre les sessions du Registre Windows, ce qui peut entraîner des risques de sécurité.

Résolution

  • Utilisez un chiffrement fort et des phrases secrètes lors de la génération de clés privées.
  • Limitez l’accès au Registre par le biais des autorisations utilisateur.
  • Mettez régulièrement à jour OpenSSH à partir de sources officielles (par exemple, GitHub).
  • Auditez régulièrement les entrées du Registre et effacez les clés sensibles quand cela n’est pas nécessaire.

Ajustements facultatifs du Registre

Gérez les clés RSA en toute sécurité via des stratégies de Registre :

Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\SSH-Server' -Name AllowRSAKey -Value 1 -Type DWORD 
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\SSH-Server\Parameters' -Name AllowRSAKey -Value 1 -Type DWORD 
  • Sécuriser les comptes d’utilisateur et gérer des autorisations de fichier strictes.
  • Mettez régulièrement à jour OpenSSH pour inclure les derniers correctifs de sécurité.
  • Utilisez des algorithmes plus forts tels que ED25519 ou ECDSA dans la mesure du possible.
  • Informez les utilisateurs sur les pratiques de gestion des clés sécurisées.

Dépannage à l'aide des journaux et diagnostics

Pour collecter des journaux de débogage détaillés pendant les tentatives de connexion, utilisez la commande SSH en mode verbeux :

ssh -vvv user@hostname

Analysez les journaux collectés à partir d’environnements de travail et de non-travail pour identifier les différences de configuration.

Étapes suivantes

  • Identifiez et inventoriez les clients existants nécessitant toujours des algorithmes plus faibles comme ssh-rsa.
  • Implémentez une stratégie de mise à niveau planifiée pour migrer ces clients vers des algorithmes plus forts.
  • Après avoir résolu les problèmes de compatibilité, supprimez les remplacements d’algorithmes temporaires de sshd_config.
  • Remplacez les clés RSA héritées par des clés plus fortes (rsa 3072 bits minimum ou ED25519).

References