Outils pour utilisateurs

Outils du site


openbsd.org:openssh:legacy

[ OpenBSD ] [ OpenSSH ] ~ Traduction française de la page OpenSSH Legacy : (v1.13 ; 12/06/2019)


OpenSSH : Héritage d'Options

OpenSSH implémente tous les algorithmes cryptographiques nécessaires pour la compatibilité avec les implémentations non standardisées de SSH, mais du fait que certains vieux algorithmes ont des faiblesses, ils n'ont pas été activés par défaut. Cette page décrit que faire quand SSH refuse de se connecter avec une implémentation qui prend en charge seulement de vieux algorithmes.

Quand un client SSH se connecte à un serveur, chacun offre une liste de paramètres de connexion à l'autre. Selon le mot clé ssh_config correspondant, ils sont :

  • KexAlgorithms : les méthodes d'échange des clés utilisées pour générer des clés par connexion.
  • Ciphers : les chiffrements pour crypter la connexion.
  • MACs : les codes des messages d'authentification utilisés pour détecter les modifications de trafic.
  • PubkeyAcceptedKeyTypes : l'algorithme de clé publique que le serveur peut utilisé pour s'authentifier lui-même au client.

Pour une connexion réussie, ils doivent au moins avoir un choix mutuellement supporté pour chaque paramètre.

Si le client et le serveur ne sont pas capable de s'entendre sur un ensemble mutuel de paramètres alors la connexion échouera. OpenSSH (v7.0 et supérieure) produira un message tel que :

Unable to negotiate with legacyhost: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1

Dans ce cas, le client et le serveur seront incapables de s'accorder sur l'algorithme d'échange de clés. Le serveur offre seulement une seule méthode diffie-hellman-group1-sha1. OpenSSH supporte cette méthode, mais elle n'est pas active par défaut à cause de faiblesses et à la portée théorique de l'attaque dite de Logjam.

La meilleure résolution pour ces erreurs est de mettre à jour le logiciel. OpenSSH désactive seulement les algorithmes que nous déconseillons car reconnus comme faibles. Dans certains cas, il n'est peut être pas possible immédiatement de le faire, ainsi vous aurez peut être besoin de ré-activer temporairement de tels algorithmes faibles pour obtenir l'accès.

Dans le cas du message d'erreur ci-dessus, OpenSSH peut être configuré pour activer l'algorithme d'échange de clés diffie-hellman-group1-sha1 (ou tout autre désactivé par défaut) en utilisant l'option KexAlgorithms, soit en ligne de commande :

ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 user@legacyhost

ou dans le fichier ~/.ssh/config :

Host somehost.example.org
	KexAlgorithms +diffie-hellman-group1-sha1 

Le symbole '+' devant la liste ordonne à SSH d'ajouter l'algorithme au client plutôt que de remplacer ceux par défaut. En l'ajoutant, vous mettrez automatiquement à jour l'algorithme le mieux supporté lorsque le serveur démarre sa prise en charge.

Un autre exemple, cette fois où le client et le serveur ne s'accorde pas sur l'algorithme de clés publiques pour l'authentification de l'hôte :

Unable to negotiate with legacyhost: no matching host key type found. Their offer: ssh-dss 

OpenSSH 7.0 et supérieur désactive idem l'algorithme de clés publiques ssh-dss (DSA). Lui aussi est faible est nous déconseillons son usage. Il peut être ré-activé par l'option de configuration HostKeyAlgorithms :

ssh -oHostKeyAlgorithms=+ssh-dss user@legacyhost 

ou dans le fichier ~/.ssh/config :

Host somehost.example.org
	HostKeyAlgorithms +ssh-dss 

Selon la configuration du serveur, il est possible que d'autres paramètres de configuration échouent à négocier. Vous pouvez trouver les options utiles de configuration Ciphers et MACs afin de les activer. Il est aussi possible de demander à SSH quels algorithmes, il prend en charge :

ssh -Q cipher       # liste les chiffrements supportés
ssh -Q mac          # liste les MACs supporté
ssh -Q key          # liste les types de clés supportés
ssh -Q kex          # liste les algorithmes d'échange de clés supportés

Enfin, il est aussi possible de demander la configuration qu'utilise SSH au moment de la connexion à un hôte spécifique, en utilisant l'option -G :

ssh -G user@somehost.example.com 

qui listera toutes les options de configuration, incluant les valeurs choisies pour les paramètres Ciphers, MACs, HostKeyAlgorithms et KexAlgorithms.


Cette page est la traduction officieuse de la page “Legacy” officielle de OpenSSH.
En cas de doute, merci de vous y référer !

Si vous voulez participer à l'effort de traduction, merci de lire ce topic.


Contribut(rice|eur)s :

pengouinpdt
openbsd.org/openssh/legacy.txt · Dernière modification: 2020/05/26 15:02 de pengouinpdt