Skip to main content
ドキュメントへの更新が頻繁に発行されており、このページの翻訳はまだ行われている場合があります。 最新の情報については、「英語のドキュメント」を参照してください。

新しい SSH キーを生成して ssh-agent に追加する

既存の SSH キーをチェックした後、新しい SSH キーを生成して認証に使用し、ssh-agent に追加できます。

SSH キー パスフレーズについて

SSH (Secure Shell プロトコル) を使用して、お使いの GitHub Enterprise Server インスタンス のリポジトリ内のデータにアクセスして書き込むことができます。 SSH 経由で接続する場合は、ローカル コンピューター上の秘密キー ファイルを使用して認証します。詳しくは、「SSH について」を参照してください。

SSH キーを生成するときに、パスフレーズを追加してキーをさらにセキュリティで保護できます。 キーを使用するときは、必ずパスフレーズを入力する必要があります。 キーにパスフレーズがあり、キーを使用するたびにパスフレーズを入力したくない場合は、SSH エージェントにキーを追加できます。 SSH エージェントでは SSH キーを管理し、パスフレーズを記憶します。

SSH キーがまだない場合は、認証に使う新しい SSH キーを生成する必要があります。 SSH キーが既にあるかどうかがわからない場合は、既存のキーを確認できます。 詳しくは、「既存の SSH キーの確認」をご覧ください。

ハードウェア セキュリティ キーを使って GitHub Enterprise Server の認証を行う場合は、ハードウェア セキュリティ キー用に新しい SSH キーを生成する必要があります。 キー ペアで認証を行うときに、ハードウェア セキュリティ キーをコンピューターに接続する必要があります。 詳しくは、OpenSSH 8.2 のリリース ノートをご覧ください。

新しい SSH キーを生成する

ローカル コンピューターで新しい SSH キーを生成できます。 キーを生成した後、お使いの GitHub Enterprise Server インスタンス 上のアカウントにキーを追加して、SSH 経由の Git 操作の認証を有効にすることができます。

お使いの GitHub Enterprise Server インスタンス のサイト管理者である場合は、同じキーを使用して、インスタンスへの管理 SSH アクセスを自分に許可できます。 詳細については、「管理シェル (SSH) にアクセスする」を参照してください。

: 既定では、GitHub Enterprise Server 3.6 以降では、2022 年 8 月 1 日午前 0 時 (UTC) の期限の時点で、次の 両方 の条件を満たす SSH 接続は失敗します。


  • RSA キーは、2022 年 8 月 1 日午前 0 時 (UTC) の期日後に、お使いの GitHub Enterprise Server インスタンス のユーザー アカウントに追加されました。
  • SSH クライアントでは、SHA-1 ハッシュ関数を使用して接続試行に署名します。

GitHub Enterprise Server 3.6 以降では、DSA、HMAC-SHA-1、または CBC 暗号を使用する SSH 接続もサポートされていません。 期限より前にアップロードされた RSA SSH キーは、キーが有効である限り、SHA-1 ハッシュ関数を使用して認証を続けることができます。 使用する GitHub Enterprise Server のバージョンを見つける方法の詳細については、「GitHub Docs のバージョンについて」を参照してください。

サイト管理者は RSA-SHA-1 を使って接続の期限を調整でき、RSA-SHA-1 を使用するすべての接続をブロックできます。 詳細については、サイト管理者に問い合わせるか、「インスタンスへの SSH 接続の構成」を参照してください。

  1. [ターミナル][ターミナル][Git Bash] を開きます。

  2. 以下のテキストを貼り付けます。メールアドレスは自分の 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]
  3. プロンプトが表示されたら、セキュアなパスフレーズを入力します。 詳しくは、「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 コマンドを使うようにし、macportshomebrew、またはその他の外部ソースによってインストールされるアプリケーションは使わないでください。

  1. バックグラウンドでssh-agentを開始します。

    $ eval "$(ssh-agent -s)"
    > Agent pid 59566

    環境によっては、異なるコマンドを使う必要があるかもしれません。 たとえば、ssh-agent を開始する前に sudo -s -H を実行してルート アクセスを使用したり、exec ssh-agent bashexec ssh-agent zsh を使用して ssh-agent を実行したりする必要がある場合があります。

  2. 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
        
  3. 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」をご覧ください。

  4. GitHub Enterprise Server で自分のアカウントに SSH キーを追加します。 詳しくは、「GitHub アカウントへの新しい SSH キーの追加」をご覧ください。

GitHub Desktop をインストール済みの場合、これを使って SSH キーを扱わずにリポジトリをクローンできます。

  1. ssh-agent が実行されていることを確認します。 「SSH キーのパスフレーズを使う」の ssh-agent の自動起動に関する手順を使うか、手動で開始できます。

    # start the ssh-agent in the background
    $ eval "$(ssh-agent -s)"
    > Agent pid 59566
  2. SSH プライベートキーを ssh-agent に追加します。 キーを別の名前で作成した場合、または別の名前の既存のキーを追加する場合は、コマンドの id_ed25519 を秘密キー ファイルの名前に置き換えます。

    $ ssh-add ~/.ssh/id_ed25519

  3. GitHub Enterprise Server で自分のアカウントに SSH キーを追加します。 詳しくは、「GitHub アカウントへの新しい SSH キーの追加」をご覧ください。

  1. バックグラウンドでssh-agentを開始します。

    $ eval "$(ssh-agent -s)"
    > Agent pid 59566

    環境によっては、異なるコマンドを使う必要があるかもしれません。 たとえば、ssh-agent を開始する前に sudo -s -H を実行してルート アクセスを使用したり、exec ssh-agent bashexec ssh-agent zsh を使用して ssh-agent を実行したりする必要がある場合があります。

  2. SSH プライベートキーを ssh-agent に追加します。 キーを別の名前で作成した場合、または別の名前の既存のキーを追加する場合は、コマンドの id_ed25519 を秘密キー ファイルの名前に置き換えます。

    $ ssh-add ~/.ssh/id_ed25519

  3. GitHub Enterprise Server で自分のアカウントに SSH キーを追加します。 詳しくは、「GitHub アカウントへの新しい SSH キーの追加」をご覧ください。

ハードウェア セキュリティ キー用の新しい SSH キーを生成する

macOS または Linux を使っている場合は、新しい SSH キーを生成する前に、SSH クライアントの更新または新しい SSH クライアントのインストールが必要になる場合があります。 詳しくは、「エラー: 不明なキーの種類」をご覧ください。

  1. ハードウェア セキュリティ キーをコンピューターに挿入します。

  2. [ターミナル][ターミナル][Git Bash] を開きます。

  3. 次のテキストを貼り付けて、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"
  4. メッセージが表示されたら、ハードウェア セキュリティ キーのボタンにタッチします。

  5. "キーを保存するファイルを入力してください" というメッセージが表示されたら、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]
  6. パスフレーズの入力を求められたら、Enter キーを押します。

    > Enter passphrase (empty for no passphrase): [Type a passphrase]
    > Enter same passphrase again: [Type passphrase again]
  7. GitHub で自分のアカウントに SSH キーを追加します。 詳しくは、「GitHub アカウントへの新しい SSH キーの追加」をご覧ください。