{"meta":{"title":"SSH キーのパスフレーズを扱う","intro":"SSH キーを使用するたびにパスフレーズを再入力する必要がないように、SSH キーを保護し、認証エージェントを設定できます。","product":"認証","breadcrumbs":[{"href":"/ja/authentication","title":"認証"},{"href":"/ja/authentication/connecting-to-github-with-ssh","title":"SSH を使用した接続"},{"href":"/ja/authentication/connecting-to-github-with-ssh/working-with-ssh-key-passphrases","title":"SSH キー パスフレーズ"}],"documentType":"article"},"body":"# SSH キーのパスフレーズを扱う\n\nSSH キーを使用するたびにパスフレーズを再入力する必要がないように、SSH キーを保護し、認証エージェントを設定できます。\n\n## SSH キーのパスフレーズについて\n\nSSH キーにより、誰かがあなたのコンピューターにアクセスすると、攻撃者はそのキーを使用するすべてのシステムにアクセスできます。 セキュリティをさらに強化するには、SSH キーにパスフレーズを追加します。 接続するたびにパスフレーズを入力する必要がないように、キーを SSH エージェントに安全にキャッシュすることができます。\n\n## パスフレーズを追加または変更する\n\n次のコマンドを入力して、鍵ペアを再生成せずに既存の秘密鍵のパスフレーズを変更できます:\n\n```shell\n$ ssh-keygen -p -f ~/.ssh/id_ed25519\n> Enter old passphrase: [Type old passphrase]\n> Key has comment 'your_email@example.com'\n> Enter new passphrase (empty for no passphrase): [Type new passphrase]\n> Enter same passphrase again: [Repeat the new passphrase]\n> Your identification has been saved with the new passphrase.\n```\n\n鍵にすでにパスフレーズがある場合は、新しいパスフレーズに変更する前にそれを入力するように求められます。\n\n<div class=\"ghd-tool windows\">\n\n## git で Windows 用に `ssh-agent` を自動起動する\n\nbash または Git シェルを開いたときに、`ssh-agent` を自動的に実行できます。 次の行をコピーし、Git シェルの `~/.profile` または `~/.bashrc` ファイルに貼り付けます。\n\n```bash\nenv=~/.ssh/agent.env\n\nagent_load_env () { test -f \"$env\" && . \"$env\" >| /dev/null ; }\n\nagent_start () {\n    (umask 077; ssh-agent >| \"$env\")\n    . \"$env\" >| /dev/null ; }\n\nagent_load_env\n\n# agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2=agent not running\nagent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)\n\nif [ ! \"$SSH_AUTH_SOCK\" ] || [ $agent_run_state = 2 ]; then\n    agent_start\n    ssh-add\nelif [ \"$SSH_AUTH_SOCK\" ] && [ $agent_run_state = 1 ]; then\n    ssh-add\nfi\n\nunset env\n```\n\n秘密キーがデフォルトの場所 (`~/.ssh/id_rsa` など) に保存されていない場合は、SSH 認証エージェントにその場所を指定する必要があります。 ssh-agent にキーを追加するには、「`ssh-add ~/path/to/my_key`」と入力します。 詳しくは、「[新しい SSH キーを生成して ssh-agent に追加する](/ja/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent)」をご覧ください。\n\n> \\[!TIP]\n> しばらくしたら `ssh-agent` からキーが消去されるようにしたい場合は、`ssh-add -t <seconds>` を実行してそのように構成できます。\n\n最初に Git Bash を実行するとき、パスフレーズを求められます:\n\n```shell\n> Initializing new SSH agent...\n> succeeded\n> Enter passphrase for /c/Users/YOU/.ssh/id_rsa:\n> Identity added: /c/Users/YOU/.ssh/id_rsa (/c/Users/YOU/.ssh/id_rsa)\n> Welcome to Git (version 1.6.0.2-preview20080923)\n>\n> Run 'git help git' to display the help index.\n> Run 'git help <command>' to display help for specific commands.\n```\n\n`ssh-agent` プロセスは、ログアウトするか、コンピューターをシャットダウンするか、プロセスを中止するまで実行され続けます。\n\n</div>\n\n<div class=\"ghd-tool mac\">\n\n## パスフレーズをキーチェーンに保存する\n\nOS X El Capitan を介する Mac OS X Leopard では、これらのデフォルトの秘密鍵ファイルは自動的に処理されます。\n\n* *.ssh/id\\_rsa*\n* *.ssh/identity*\n\n初めてキーを使用するときは、パスフレーズを入力するよう求められます。 キーチェーンと一緒にパスフレーズを保存することを選択した場合は、もう一度入力する必要はありません。\n\nそれ以外の場合は、鍵を ssh-agent に追加するときに、パスフレーズをキーチェーンに格納できます。 詳しくは、「[新しい SSH キーを生成して ssh-agent に追加する](/ja/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent#adding-your-ssh-key-to-the-ssh-agent)」をご覧ください。\n\n</div>"}