Mensagem de erro
Load key "/path/to/key": incorrect passphrase supplied to decrypt private key
Também aparece como
- incorrect passphrase supplied to decrypt private key
- Bad passphrase, try again for /path/to/key:
O `ssh-add` interativo pergunta de novo com “Bad passphrase, try again for …:”; o próprio `ssh` simplesmente pede a frase outra vez.
OpenSSH (ssh-keygen, ssh-add, ssh) — encrypted private key
O que significa
O arquivo da chave foi analisado sem problemas e está criptografado; o que falhou foi descriptografá-lo com a frase secreta fornecida. O OpenSSH consegue distinguir isso de um arquivo danificado porque o contêiner criptografado inclui um valor de verificação — então esta mensagem realmente significa “frase secreta errada”, tanto para chaves no formato OpenSSH quanto para chaves PEM/PKCS#8 criptografadas. Não há como recuperar uma frase secreta esquecida; a chave precisa ser substituída.
Por que acontece
A frase secreta não é a definida para esta chave
comumVárias chaves com frases secretas diferentes, ou uma chave cuja frase secreta foi alterada com `ssh-keygen -p` em outra máquina.
Caracteres a mais vindos de um arquivo ou de uma variável
ocasionalFrases secretas lidas de arquivos ou segredos com uma quebra de linha no final ou com aspas, passadas via `-P` ou por scripts de `SSH_ASKPASS`.
Layout do teclado ou Caps Lock
ocasionalFrases secretas com caracteres que mudam de posição entre layouts (y/z, caracteres especiais) falham em uma máquina com outro layout.
Como corrigir
- 1.
Testar a frase secreta de forma interativa
Se o `ssh-keygen -y` aceita a frase secreta que você digita, o problema está na forma como o script a fornece.
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.
Usar um agente em vez de repassar frases secretas
Desbloqueie a chave uma vez no `ssh-agent` (ou no chaveiro do sistema operacional) em vez de embutir a frase secreta em scripts ou no 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