SSH キー パスフレーズについて
SSH (Secure Shell プロトコル) を使用して、 のリポジトリ内のデータにアクセスして書き込むことができます。 SSH 経由で接続する� �合は、ローカル コンピューター上の秘密キー ファイルを使用して認証します。詳しくは、「SSH について」を参照してく� さい。
SSH キーを生成するときに、パスフレーズを追� してキーをさらにセキュリティで保護できます。 キーを使用するときは、必ずパスフレーズを入力する必要があります。 キーにパスフレーズがあり、キーを使用するたびにパスフレーズを入力したくない� �合は、SSH エージェントにキーを追� できます。 SSH エージェントでは SSH キーを管理し、パスフレーズを記憶します。
SSH キーがま� ない� �合は、認証に使う新しい SSH キーを生成する必要があります。 SSH キーが既にあるかどうかがわからない� �合は、既存のキーを確認できます。 詳しくは、「既存の SSH キーの確認」をご覧く� さい。
ハードウェア セキュリティ キーを使って GitHub Enterprise Server の認証を行う� �合は、ハードウェア セキュリティ キー用に新しい SSH キーを生成する必要があります。 キー ペアで認証を行うときに、ハードウェア セキュリティ キーをコンピューターに接続する必要があります。 詳しくは、OpenSSH 8.2 のリリース ノートをご覧く� さい。
新しい SSH キーを生成する
ローカル コンピューターで新しい SSH キーを生成できます。 キーを生成した後、your GitHub Enterprise Server instance 上のアカウントにキーを追� して、SSH 経由の Git 操作の認証を有効にすることができます。
your GitHub Enterprise Server instance のサイト管理者である� �合は、同じキーを使用して、インスタンスへの管理 SSH アクセスを自分に許可できます。 詳細については、「管理シェル (SSH) にアクセスする」を参照してく� さい。
-
[ターミナル][ターミナル][Git Bash] を開きます。
-
以下のテキストを貼り付けます。メールアドレスは自分の GitHub Enterprise Server メールアドレスに置き換えてく� さい。
$ ssh-keygen -t ed25519 -C "your_email@example.com"
注: Ed25519 アルゴリズ� をサポートしていないレガシ システ� を使っている� �合は、以下を使います。
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
これにより、指定したメールアドレスをラベルとして使って新しい SSH キーが作成されます。
> Generating public/private ALGORITHM key pair.
"キーを保存するファイルを入力してく� さい" というメッセージが表示されたら、Enter キーを押して既定のファイルの� �所をそのまま使うことができます。 以前に SSH キーを作成した� �合、ssh-keygen から別のキーの書き換えを求められる� �合があることに注意してく� さい。その� �合は、カスタ� 名の SSH キーを作成することをお勧めします。 これを行うには、既定のファイルの� �所を入力し、id_ssh_keyname をカスタ� キー名に置き換えます。
> Enter a file in which to save the key (/Users/YOU/.ssh/id_ALGORITHM: [Press enter]
> Enter a file in which to save the key (/c/Users/YOU/.ssh/id_ALGORITHM):[Press enter]
> Enter a file in which to save the key (/home/YOU/.ssh/ALGORITHM):[Press enter]
-
プロンプトが表示されたら、セキュアなパスフレーズを入力します。 詳しくは、「SSH キーのパスフレーズを使う」をご覧く� さい。
> Enter passphrase (empty for no passphrase): [Type a passphrase] > Enter same passphrase again: [Type passphrase again]
SSH キーを ssh-agent に追� する
ssh-agent に新しい SSH キーを追� してキーを管理する前に、既存の SSH キーを確認し、新しい SSH キーを生成しておく必要があります。 SSH キーをエージェントに追� するときは、macOS の既定の ssh-add
コマンドを使うようにし、macports、homebrew、またはその他の外部ソースによってインストールされるアプリケーションは使わないでく� さい。
-
バックグラウンドでssh-agentを開始します。
$ eval "$(ssh-agent -s)" > Agent pid 59566
環境によっては、異なるコマンドを使う必要があるかもしれません。 たとえば、ssh-agent を開始する前に
sudo -s -H
を実行してルート アクセスを使用したり、exec ssh-agent bash
やexec ssh-agent zsh
を使用して ssh-agent を実行したりする必要がある� �合があります。 -
macOS Sierra 10.12.2 以降を使っている� �合は、
~/.ssh/config
ファイルを修正して、キーが ssh-agent に自動的に読み込まれ、パスフレーズがキーチェーンに� �納されるようにする必要があります。-
まず、
~/.ssh/config
ファイルが既定の� �所に存在するかどうかを調べます。$ open ~/.ssh/config > The file /Users/YOU/.ssh/config does not exist.
-
ファイルがない� �合は、ファイルを作成します。
$ touch ~/.ssh/config
-
~/.ssh/config
ファイルを開き、以下の行が含まれるようにファイルを変更します。 SSH キーファイルの名前またはパスがサンプルコードと異なる� �合は、現在の設定に一致するようにファイル名またはパスを変更してく� さい。Host *.HOSTNAME AddKeysToAgent yes UseKeychain yes IdentityFile ~/.ssh/id_ed25519
注:
-
キーにパスフレーズを追� しないようにする� �合は、
UseKeychain
の行を省略する必要があります。 -
Bad configuration option: usekeychain
エラーが発生した� �合は、構成のHost *.HOSTNAME
セクションに行をさらに追� します。Host *.HOSTNAME IgnoreUnknown UseKeychain
-
-
-
SSH 秘密鍵を ssh-agent に追� して、パスフレーズをキーチェーンに保存します。 キーを別の名前で作成した� �合、または別の名前の既存のキーを追� する� �合は、コマンドの id_ed25519 を秘密キー ファイルの名前に置き換えます。
$ ssh-add --apple-use-keychain ~/.ssh/id_ed25519
注:
--apple-use-keychain
オプションでは、ssh-agent に SSH キーを追� すると、パスフレーズがキーチェーンに自動的に� �納されます。 パスフレーズをキーに追� しない� �合は、--apple-use-keychain
オプションを指定せずにコマンドを実行します。--apple-use-keychain
オプションは、Apple の標準バージョンのssh-add
です。 Monterey (12.0) より前の MacOS バージョンでは、--apple-use-keychain
と--apple-load-keychain
フラグでそれぞれ構文-K
と-A
が使用されていました。Apple の標準バージョンの
ssh-add
をインストールしていない� �合は、エラーが発生することがあります。 詳しくは、「エラー: ssh-add: 無効なオプション -- K」をご覧く� さい。 -
GitHub Enterprise Server で自分のアカウントに SSH キーを追� します。 詳しくは、「GitHub アカウントへの新しい SSH キーの追� 」をご覧く� さい。
GitHub Desktop をインストール済みの� �合、これを使って SSH キーを扱わずにリポジトリをクローンできます。
-
ssh-agent が実行されていることを確認します。 「SSH キーのパスフレーズを使う」の ssh-agent の自動起動に関する手� �を使うか、手動で開始できます。
# start the ssh-agent in the background $ eval "$(ssh-agent -s)" > Agent pid 59566
-
SSH プライベートキーを ssh-agent に追� します。 キーを別の名前で作成した� �合、または別の名前の既存のキーを追� する� �合は、コマンドの id_ed25519 を秘密キー ファイルの名前に置き換えます。
$ ssh-add ~/.ssh/id_ed25519
-
GitHub Enterprise Server で自分のアカウントに SSH キーを追� します。 詳しくは、「GitHub アカウントへの新しい SSH キーの追� 」をご覧く� さい。
-
バックグラウンドでssh-agentを開始します。
$ eval "$(ssh-agent -s)" > Agent pid 59566
環境によっては、異なるコマンドを使う必要があるかもしれません。 たとえば、ssh-agent を開始する前に
sudo -s -H
を実行してルート アクセスを使用したり、exec ssh-agent bash
やexec ssh-agent zsh
を使用して ssh-agent を実行したりする必要がある� �合があります。 -
SSH プライベートキーを ssh-agent に追� します。 キーを別の名前で作成した� �合、または別の名前の既存のキーを追� する� �合は、コマンドの id_ed25519 を秘密キー ファイルの名前に置き換えます。
$ ssh-add ~/.ssh/id_ed25519
-
GitHub Enterprise Server で自分のアカウントに SSH キーを追� します。 詳しくは、「GitHub アカウントへの新しい SSH キーの追� 」をご覧く� さい。
ハードウェア セキュリティ キー用の新しい SSH キーを生成する
macOS または Linux を使っている� �合は、新しい SSH キーを生成する前に、SSH クライアントの更新または新しい SSH クライアントのインストールが必要になる� �合があります。 詳しくは、「エラー: 不明なキーの種類」をご覧く� さい。
-
ハードウェア セキュリティ キーをコンピューターに挿入します。
-
[ターミナル][ターミナル][Git Bash] を開きます。
-
次のテキストを貼り付けて、GitHub Enterprise Server での自分のアカウントのメール アドレスに置き換えます。
$ ssh-keygen -t ed25519-sk -C "YOUR_EMAIL"
注: コマンドが失敗し、エラー
invalid format
またはfeature not supported,
を受け取る� �合は、Ed25519 アルゴリズ� をサポートしていないハードウェア セキュリティ キーを使っている可能性があります。 代わりに、次のコマンドを入力します。$ ssh-keygen -t ecdsa-sk -C "your_email@example.com"
-
メッセージが表示されたら、ハードウェア セキュリティ キーのボタンにタッチします。
-
"キーを保存するファイルを入力してく� さい" というメッセージが表示されたら、Enter キーを押して既定のファイルの� �所をそのまま使います。
> Enter a file in which to save the key (/Users/YOU/.ssh/id_ed25519_sk): [Press enter]
> Enter a file in which to save the key (/c/Users/YOU/.ssh/id_ed25519_sk):[Press enter]
> Enter a file in which to save the key (/home/YOU/.ssh/id_ed25519_sk):[Press enter]
-
パスフレーズの入力を求められたら、Enter キーを押します。
> Enter passphrase (empty for no passphrase): [Type a passphrase] > Enter same passphrase again: [Type passphrase again]
-
GitHub で自分のアカウントに SSH キーを追� します。 詳しくは、「GitHub アカウントへの新しい SSH キーの追� 」をご覧く� さい。