本文へスキップ
ecdsa.com
OpenSSH (ssh-keygen, ssh-add, ssh)SSH

エラーメッセージ

Load key "/path/to/key": incorrect passphrase supplied to decrypt private key

別の表記

  • incorrect passphrase supplied to decrypt private key
  • Bad passphrase, try again for /path/to/key:

対話型の `ssh-add` は「Bad passphrase, try again for …:」と表示して再入力を求めます。`ssh` 自体は、単にプロンプトを再表示します。

OpenSSH (ssh-keygen, ssh-add, ssh) — encrypted private key

このエラーの意味

鍵ファイルは正しく解析でき、暗号化されています。指定されたパスフレーズでの復号に失敗しました。暗号化されたコンテナーにはチェック値が含まれているため、OpenSSH はこれを損傷したファイルと区別できます。つまり、このメッセージは、OpenSSH 形式の鍵でも暗号化された PEM/PKCS#8 の鍵でも、本当に「パスフレーズが間違っている」ことを意味します。忘れたパスフレーズを復元する方法はなく、鍵を置き換えるしかありません。

発生する理由

修正方法

  1. 1.

    パスフレーズを対話的にテストする

    手入力したパスフレーズを `ssh-keygen -y` が受け入れる場合、問題はスクリプトがパスフレーズを渡す方法にあります。

    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. 2.

    パスフレーズを渡す代わりにエージェントを使う

    スクリプトや CI にパスフレーズを埋め込むのではなく、`ssh-agent`(または OS のキーチェーン)で一度だけ鍵のロックを解除してください。

    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

関連するエラー

署名エラーデータベースをすべて見る