J'essaie de me connecter à un référentiel qui fonctionne via mon VPN. J'ai téléchargé Git et quand j'essaye de cloner le repo, je reçois le message suivant:
Unable to negotiate with XX.XX.XXX.XXX : no matching Host key type found . their offer: ssh-dss
Y a-t-il quelque chose qui me manque?
J'ai trouvé le problème. Les nouvelles versions d'OpenSSH désactivent l'algorithme de clé publique ssh-dss (DSA). DSA a été jugé trop faible et la communauté OpenSSH recommande de ne pas l'utiliser.
Si vous voyez une erreur semblable à ceci:
Impossible de négocier avec 10.96.8.72: aucun type de clé d’hôte correspondant n’a été trouvé. Leur offre: ssh-dss
... alors vous devez réactiver les clés DSA en modifiant votre fichier ~/.ssh/config pour ajouter la ligne suivante:
HostkeyAlgorithms +ssh-dss
Vous devrez peut-être créer le fichier ~/.ssh/config s'il n'existe pas déjà.
Après avoir créé le fichier, vous devez limiter les autorisations d'accès:
chmod 600 ~/.ssh/config
et ensuite faire le clone. Cela devrait fonctionner parfaitement bien!
Vous essayez de cloner via le protocole ssh. Le serveur ssh de l’autre côté nécessite une authentification par clé dss, mais votre client ssh utilisé par git n’a pas accès à celle-ci, probablement parce que vous n’en avez pas créé.
La manière dont vous créez une clé dépend du client ssh et du système d'exploitation utilisé.
Lorsque vous créez une clé, vous créez en fait une paire de clés avec une clé privée et une clé publique. La clé publique doit être connue du serveur pour que celui-ci puisse vous authentifier.
La manière dont vous ajoutez votre clé publique aux serveurs ssh-server dépend du serveur ssh utilisé (ou du logiciel d’hébergement git qui encapsule le serveur ssh).