Message d’erreur
Load key "/path/to/key": incorrect passphrase supplied to decrypt private key
Également affiché sous la forme
- incorrect passphrase supplied to decrypt private key
- Bad passphrase, try again for /path/to/key:
En mode interactif, `ssh-add` redemande avec « Bad passphrase, try again for …: » ; `ssh` lui-même se contente de redemander.
OpenSSH (ssh-keygen, ssh-add, ssh) — encrypted private key
Ce que cela signifie
Le fichier de clé a été analysé sans problème et il est chiffré ; c’est son déchiffrement avec la phrase de passe fournie qui a échoué. OpenSSH distingue ce cas d’un fichier endommagé, car le conteneur chiffré inclut une valeur de contrôle : ce message signifie donc réellement « mauvaise phrase de passe », aussi bien pour les clés au format OpenSSH que pour les clés PEM/PKCS#8 chiffrées. Il n’existe aucun moyen de récupérer une phrase de passe oubliée ; la clé doit être remplacée.
Pourquoi cela se produit
La phrase de passe n’est pas celle définie pour cette clé
fréquentePlusieurs clés avec des phrases de passe différentes, ou une clé dont la phrase de passe a été modifiée avec `ssh-keygen -p` sur une autre machine.
Caractères en trop provenant d’un fichier ou d’une variable
occasionnellePhrases de passe lues dans des fichiers ou des secrets avec un saut de ligne final ou des guillemets, puis transmises via `-P` ou des scripts `SSH_ASKPASS`.
Disposition du clavier ou verrouillage des majuscules
occasionnelleLes phrases de passe contenant des caractères qui changent de place d’une disposition à l’autre (y/z, caractères spéciaux) échouent sur une machine dont la disposition est différente.
Comment corriger l’erreur
- 1.
Tester la phrase de passe en mode interactif
Si `ssh-keygen -y` accepte la phrase de passe que vous saisissez, le problème vient de la façon dont votre script la fournit.
bash ssh-keygen -y -f ~/.ssh/id_ed25519 > /dev/null # prompts; succeeds only with the right passphrase ssh-keygen -p -f ~/.ssh/id_ed25519 # change the passphrase (needs the old one) - 2.
Utiliser un agent au lieu de transmettre des phrases de passe
Déverrouillez la clé une seule fois dans `ssh-agent` (ou dans le trousseau du système d’exploitation) plutôt que d’intégrer la phrase de passe dans des scripts ou dans la CI.
bash # Unlock once per session instead of typing or storing the passphrase in scripts eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_ed25519 # macOS: keep it in the keychain ssh-add --apple-use-keychain ~/.ssh/id_ed25519