GitLabでSSHキーを使用する
发布时间:2026-09-22 | 浏览:2
プラン : Free、Premium、Ultimate
提供形態 : GitLab.com、GitLab Self-Managed、GitLab Dedicated
GitLabにコードをプッシュするまたはプルするたびに、ユーザー名とパスワードを入力することなく、SSHキーを使用して安全に認証することができます。
GitLabでSSHキーを使用するには、次の手順を実行する必要があります:
ローカルシステムでSSHキーペアを生成します。
あなたのSSHキーをGitLabアカウントに追加します。
GitLabへの接続を確認します。
高度なSSHキー設定については、 高度なSSHキー設定 を参照してください。
SSHは、公開キーと秘密キーの2つのキーを使用します。
秘密キーは保護する必要があります。
公開キーをアップロードしても、機密データが漏洩することはありません。SSH公開キーをコピーまたはアップロードする際に、誤って秘密キーをコピーまたはアップロードしないように注意してください。
秘密キーを使用して コミットに署名 することができ、これによりGitLabの使用とデータの安全性がさらに向上します。この署名は、公開キーを使用して誰でも検証できます。
詳細については、 公開キー暗号としても知られる非対称暗号 を参照してください。
SSHを使用してGitLabと通信するには、以下が必要です。
GNU/Linux、macOS、およびWindows 10にプリインストールされているOpenSSHクライアント。
SSHバージョン6.5以降。それ以前のバージョンではMD5署名を使用していましたが、これは安全ではありません。
システムにインストールされているSSHのバージョンを表示するには、 ssh -V を実行します。
サポートされているSSHキーの種類
GitLab 16.3でRSAキーの最大長が 変更 されました。
GitLabとの通信には、次のSSHキーの種類を使用できます。
既存のSSHキーペアを確認する
キーペアを作成する前に、キーペアがすでに存在するかどうかを確認します。
ホームディレクトリに移動します。
.ssh/ サブディレクトリに移動します。 .ssh/ サブディレクトリが存在しない場合は、ホームディレクトリにいないか、以前に ssh を使用したことがないかのどちらかです。後者の場合は、 SSHキーペアを生成する 必要があります。
次のいずれかの形式のファイルが存在するかどうかを確認します。 アルゴリズム 公開キー 秘密キー ED25519(推奨) id_ed25519.pub id_ed25519 ED25519_SK id_ed25519_sk.pub id_ed25519_sk ECDSA_SK id_ecdsa_sk.pub id_ecdsa_sk RSA(少なくとも4096ビットのキーサイズ) id_rsa.pub id_rsa DSA(非推奨) id_dsa.pub id_dsa ECDSA id_ecdsa.pub id_ecdsa
既存のSSHキーペアがない場合は、新しいキーペアを生成します。
キータイプと、後でキーを識別するのに役立つオプションのコメントを指定して、 ssh-keygen -t を実行します。一般的には、メールアドレスをコメントとして使用します。このコメントは .pub ファイルに含まれます。 例(ED25519の場合): ssh-keygen -t ed25519 -C "<comment>" 4096ビットRSAの場合: ssh-keygen -t rsa -b 4096 -C "<comment>"
キータイプと、後でキーを識別するのに役立つオプションのコメントを指定して、 ssh-keygen -t を実行します。一般的には、メールアドレスをコメントとして使用します。このコメントは .pub ファイルに含まれます。
Enter キーを押します。次のような出力が表示されます。 Generating public/private ed25519 key pair. Enter file in which to save the key (/home/user/.ssh/id_ed25519):
Enter キーを押します。次のような出力が表示されます。
デプロイキー を生成する場合、または他のキーを保存する特定のディレクトリに保存したい場合を除き、提案されたファイル名とディレクトリをそのまま使用します。 SSHキーペアを 特定のホスト専用 にすることもできます。
デプロイキー を生成する場合、または他のキーを保存する特定のディレクトリに保存したい場合を除き、提案されたファイル名とディレクトリをそのまま使用します。
SSHキーペアを 特定のホスト専用 にすることもできます。
パスフレーズ を指定します。 Enter passphrase (empty for no passphrase): Enter same passphrase again: ファイルの保存場所に関する情報を含む確認メッセージが表示されます。公開キーと秘密キーが生成されます。
ファイルの保存場所に関する情報を含む確認メッセージが表示されます。公開キーと秘密キーが生成されます。
秘密SSHキーを ssh-agent に追加します。 例(ED25519の場合): ssh-add ~/.ssh/id_ed25519
秘密SSHキーを ssh-agent に追加します。
GitLabアカウントにSSHキーを追加する
キーに推奨されるデフォルトの有効期限は、GitLab 15.4で 導入 されました。
SSHキーの使用タイプは、GitLab 15.7で 追加 されました。
GitLabでSSHを使用するには、公開キーをGitLabアカウントにコピーします。GitLabは秘密キーにアクセスできません。
SSHキーを追加すると、GitLabは既知の侵害されたキーのリストと照合してチェックします。侵害されたキーは、関連する秘密キーが公に知られており、アカウントにアクセスするために使用される可能性があるため、追加できません。この制限は設定できません。
キーがブロックされている場合は、 新しいSSHキーペアを生成 します。
GitLabアカウントにSSHキーを追加するには:
公開キーファイルの内容をコピーします。これは手動で行うことも、スクリプトを使用することもできます。 これらの例では、 id_ed25519.pub をファイル名に置き換えてください。たとえば、RSAの場合は、 id_rsa.pub を使用します。 macOS tr -d '\n' < ~/.ssh/id_ed25519.pub | pbcopy Linux(xclipパッケージが必要) xclip -sel clip < ~/.ssh/id_ed25519.pub Windows上のGit Bash cat ~/.ssh/id_ed25519.pub | clip
公開キーファイルの内容をコピーします。これは手動で行うことも、スクリプトを使用することもできます。
これらの例では、 id_ed25519.pub をファイル名に置き換えてください。たとえば、RSAの場合は、 id_rsa.pub を使用します。
GitLabにサインインします。
GitLabにサインインします。
右上隅で、アバターを選択します。
右上隅で、アバターを選択します。
プロファイルを編集 を選択します。
プロファイルを編集 を選択します。
左サイドバーで、 アクセス > SSHキー を選択します。
左サイドバーで、 アクセス > SSHキー を選択します。
新しいキーを追加 を選択します。
新しいキーを追加 を選択します。
キー ボックスに、公開キーの内容を貼り付けます。キーを手動でコピーする場合は、 ssh-rsa 、 ssh-dss 、 ecdsa-sha2-nistp256 、 ecdsa-sha2-nistp384 、 ecdsa-sha2-nistp521 、 ssh-ed25519 、 sk-ecdsa-sha2-nistp256@openssh.com 、または sk-ssh-ed25519@openssh.com で始まり、コメントで終わる可能性があるキー全体をコピーしていることを確認してください。
キー ボックスに、公開キーの内容を貼り付けます。キーを手動でコピーする場合は、 ssh-rsa 、 ssh-dss 、 ecdsa-sha2-nistp256 、 ecdsa-sha2-nistp384 、 ecdsa-sha2-nistp521 、 ssh-ed25519 、 sk-ecdsa-sha2-nistp256@openssh.com 、または sk-ssh-ed25519@openssh.com で始まり、コメントで終わる可能性があるキー全体をコピーしていることを確認してください。
タイトル ボックスに、 Work Laptop や Home Workstation などの説明を入力します。
タイトル ボックスに、 Work Laptop や Home Workstation などの説明を入力します。
オプション。キーの 使用タイプ を選択します。 Authentication (認証)または Signing (署名)のいずれか、またはその両方で使用できます。 Authentication & Signing (認証と署名)がデフォルト値です。
オプション。キーの 使用タイプ を選択します。 Authentication (認証)または Signing (署名)のいずれか、またはその両方で使用できます。 Authentication & Signing (認証と署名)がデフォルト値です。
オプション。 有効期限 を更新して、デフォルトの有効期限を変更します。詳細については、 SSHキーの有効期限 を参照してください。
オプション。 有効期限 を更新して、デフォルトの有効期限を変更します。詳細については、 SSHキーの有効期限 を参照してください。
SSHキーが正しく追加されていること、およびGitLabインスタンスに接続できることを確認します:
正しいサーバーに接続していることを確認するには、SSHホストキーのフィンガープリントを特定します: GitLab.comについては、 SSHホストキーのフィンガープリント ドキュメントを参照してください。 GitLab Self-ManagedまたはGitLab Dedicatedの場合は、 gitlab.example.com がGitLabインスタンスのURLである https://gitlab.example.com/help/instance_configuration#ssh-host-keys-fingerprints を参照してください。
GitLab.comについては、 SSHホストキーのフィンガープリント ドキュメントを参照してください。
GitLab Self-ManagedまたはGitLab Dedicatedの場合は、 gitlab.example.com がGitLabインスタンスのURLである https://gitlab.example.com/help/instance_configuration#ssh-host-keys-fingerprints を参照してください。
ターミナルを開き、次のコマンドを実行します。 GitLab.comの場合は、 ssh -T git@gitlab.com を使用します。 GitLab Self-ManagedまたはGitLab Dedicatedの場合は、 gitlab.example.com がGitLabインスタンスのURLである ssh -T git@gitlab.example.com を使用します。
GitLab.comの場合は、 ssh -T git@gitlab.com を使用します。
GitLab Self-ManagedまたはGitLab Dedicatedの場合は、 gitlab.example.com がGitLabインスタンスのURLである ssh -T git@gitlab.example.com を使用します。
デフォルトでは、接続には git ユーザー名を使用しますが、GitLab Self-ManagedまたはGitLab Dedicatedの管理者は ユーザー名を変更 できます。
最初の接続時に、GitLabホストの信頼性を確認する必要がある場合があります。次のようなメッセージが表示された場合は、画面のプロンプトに従ってください: The authenticity of host 'gitlab.example.com (35.231.145.151)' can't be established. ECDSA key fingerprint is SHA256:HbW3g8zUjNSksFbqTiUWPWg2Bq1x8xdGUrliXFzSnUw. Are you sure you want to continue connecting (yes/no)? ウェルカムメッセージが表示されます。 Welcome to GitLab, <username>! メッセージが表示されない場合は、SSH接続の トラブルシューティングを行う ことができます。
最初の接続時に、GitLabホストの信頼性を確認する必要がある場合があります。次のようなメッセージが表示された場合は、画面のプロンプトに従ってください:
ウェルカムメッセージが表示されます。
メッセージが表示されない場合は、SSH接続の トラブルシューティングを行う ことができます。
次の手順でアカウントのSSHキーを表示できます。
右上隅で、アバターを選択します。
プロファイルを編集 を選択します。
左サイドバーで、 アクセス > SSHキー を選択します。
既存のSSHキーがページの下部に一覧表示されます。情報には次のものが含まれます。
SSHキーを取り消すか削除して、アカウントから完全に削除できます。
SSHキーでコミットに署名している場合、SSHキーを削除すると、他の影響もあります。詳細については、 削除されたSSHキーで署名されたコミット を参照してください。
GitLab 15.9で 導入 されました。
SSHキーのセキュリティが侵害された場合は、キーを取り消します。
SSHキーには、 Signing (署名)または Authentication & Signing (認証と署名)の使用タイプが必要です。
次の手順でSSHキーを取り消せます。
右上隅で、アバターを選択します。
プロファイルを編集 を選択します。
左サイドバーで、 アクセス > SSHキー を選択します。
取り消したいSSHキーの横にある 取り消し を選択します。
次の手順でSSHキーを削除できます。
右上隅で、アバターを選択します。
プロファイルを編集 を選択します。
左サイドバーで、 アクセス > SSHキー を選択します。
削除したいキーの横にある 削除 ( )を選択します。
SSHキーをアカウントに追加するときに、有効期限を設定できます。このオプションの設定は、セキュリティ漏洩のリスクを制限するのに役立ちます。
SSHキーの有効期限が切れると、認証することやコミットへの署名に使用できなくなります。新しい SSHキーを生成 し、 アカウントに追加 する必要があります。
GitLab Self-ManagedおよびGitLab Dedicatedでは、管理者は有効期限を表示し、 キーを削除 する際のガイダンスとして使用できます。
GitLabは、期限切れのSSHキーを毎日チェックし、通知を送信します:
01:00 AM UTC、有効期限の7日前。
02:00 AM UTC、有効期限当日。