TeamCity On-Premises 2026.2 Help

SSH キーの管理

秘密 SSH 鍵を TeamCity プロジェクトにアップロードできます。 アップロード済みの鍵は、VCS ルートの設定時および SSH Agent ビルド機能で使用できます。

サポートされている鍵フォーマット

TeamCity は PEM および OpenSSH フォーマットの鍵をサポートしています。 異なる形式を使用するキーは変換する必要があります。 例: PuTTY キージェネレーター(英語)を使用して、サポートされていない Putty 秘密鍵 (*.ppk) を PEM 形式に変換できます。 これを行うには、 変換 | OpenSSH キーをエクスポート メニューに移動します。

SSH キーを TeamCity サーバーにアップロード

TeamCity プロジェクトが SSH URL 経由でリモートリポジトリにアクセスできるようにするには、まずこれらのプロジェクトに秘密鍵をアップロードする必要があります。

  1. プロジェクト設定 で、 SSH 鍵 をクリックします。

  2. SSH 鍵 ページで、 SSH 鍵をアップロード をクリックします。

    SSH キーを TeamCity に追加

  3. SSH キーをアップロード 」ダイアログで、秘密鍵ファイルを参照し、このキーの名前を指定します。

  4. 保存 」をクリックして、アップロードしたキーを保存します。

リポジトリ URL から新しいビルド構成やパイプラインを作成する際に、秘密鍵をアップロードすることもできます。 SSH URL を使用すると、TeamCity は 認証 モードを "SSH キー" に切り替え、以前にアップロードした秘密鍵のリストを表示します。 必要な鍵を以前にアップロードしていない場合は、 SSH 鍵をアップロード をクリックし、TeamCity に必要なファイルを指定してください。

新しいプロジェクトページに SSH キーをアップロードする

アップロードされた SSH キーは次のディレクトリに保存されます。

鍵が"プロジェクトを作成"ページからアップロードされた場合、TeamCity は作成されたプロジェクトの親プロジェクトにその鍵を割り当てます。 この場合、アップロードされたキーは次のディレクトリに保存されます。

TeamCity は ssh_keys フォルダーを監視し、新しいキーをその場で検出できます。 アップロードされた SSH キーは、対応するプロジェクトとそのすべてのサブプロジェクトで使用できます。

生成された SSH キー

GitHub Deploy Keys または同様の認証ワークフローを使用している場合は、SSH 鍵を手動で生成する代わりに TeamCity に生成させることができます。 このアプローチはより安全であり (生成されたキーはローカルマシンに保存されないため)、大幅に高速です。 後者は、SSH キーを時々再生成してローテーションする場合に特に役立ちます。

  1. プロジェクト設定 で、 SSH 鍵 をクリックします。

  2. SSH キーの生成 ボタンをクリックしてください。

    SSH キーの生成
  3. キー名を入力し、キーのタイプを選択して、「生成 」をクリックします。

  4. 新しく生成されたキーの秘密鍵または公開鍵が必要な場合は、次のようにします。

    • 秘密鍵は <TeamCity データディレクトリ>/config/projects/<親プロジェクト>/pluginData/ssh_keys ディレクトリに保存されます。

    • 公開鍵には、メインの SSH 鍵 ページからアクセスできます (必要なキーにある 公開鍵をコピー リンクをクリックします)。 このキーをバージョン管理サービスに貼り付けます (たとえば、GitHub で: 「リポジトリ設定 | デプロイキー | デプロイキーの追加」)。

  5. TeamCity VCS ルートの 認証設定 で、生成された鍵を選択します。 便宜上、TeamCity で生成された鍵は別のカテゴリに配置されます。

    VCS 認証設定で生成されたキーを選択する

VCS ルート設定を構成

プライベート SSH キーは、VCS ルートが SSH URL (たとえば、 git@github.com:…) 経由でリモートリポジトリを操作するように設定されている場合にのみ使用されます。 SSH URL を使用してプロジェクトを作成し、"プロジェクトを作成"ページから秘密鍵を選択またはアップロードすると、TeamCity が必要な設定を自動的に行うため、 VCS ルートの構成 を変更する必要はありません。

それ以外の場合、トークンまたはパスワードを介して VCS に認証するプロジェクトを更新して、代わりに SSH キーを使用するようにするには、対応する VCS ルートの構成 を手動で更新する必要があります。

  1. 管理 | <Your_Project> | VCS ルート に移動し、必要なルートの横にある 編集 をクリックします。

  2. 代わりに SSH URL を使用するには、 フェッチ URL フィールドと プッシュ URL フィールドを更新します。 例: https://github.com/ユーザー名/リポジトリ名.gitgit@github.com:ユーザー名/リポジトリ名.git に変更します。

  3. 認証設定 までスクロールし、 秘密鍵 オプションのいずれかを選択します。

    SSH キーを選択する
    • アップロード済みの鍵プロジェクトにアップロードされたキーを利用するには、このオプションを選択します。

    • デフォルトの秘密鍵 — このオプションを選択すると、一般的な ssh ツールで使用されるデフォルトの場所にあるファイルシステム上の鍵を利用できます: ファイルが存在する場合は <ユーザーホーム>/.ssh/config で指定されたマッピング、または秘密鍵ファイル <ユーザーホーム>/.ssh/id_rsa (これらのファイルはサーバー上に存在する必要があります。また、 エージェント側チェックアウト を使用する場合はエージェント上にも存在する必要があります)。

    • カスタム秘密鍵 — サポートされている サーバー側チェックアウトの場合のみ秘密鍵のパス フィールドに、サーバーマシン上の秘密鍵ファイルへの絶対パスを入力します。 キーが暗号化されている場合は、対応するフィールドにパスフレーズを指定します。

  4. ページの下部にある 接続をテスト をクリックして現在の値を確認し、 適用 をクリックしてルート設定を保存して終了します。

SSH 鍵をビルドエージェントに配布

エージェント側のチェックアウトを構成すると、サーバーは SSH キーをエージェントに渡します。 ビルド中に、Git プラグインはサーバーからエージェントにキーをダウンロードし、 git フェッチ/クローン の補完後にこのキーを削除します。

サーバーからエージェントに鍵を転送するために、TeamCity は DES 対称暗号で鍵を暗号化します。 より安全な方法のために、 エージェントとサーバー間の HTTPS 接続を構成します。

VCS ルートに加えて、アップロードされた SSH キーを SSH エージェント ビルド機能で使用できます。 詳細については、このリンクを参照してください: SSH Agent

既知の SSH ホスト

SSH 鍵により、TeamCity はリモートリソースに安全にアクセスできます。 リモートホスト(たとえば GitHub のような VCS プロバイダー)に接続する際、ホストは TeamCity の秘密鍵を検証することで TeamCity を認証します。

セキュリティをさらに強化するために、逆のプロセスであるホスト検証を有効にすることもできます。 このモードでは、TeamCity は接続を確立する前にホストの公開鍵を確認します。 鍵が既知の値と一致しない場合、接続は拒否されます。 これにより、信頼できるサービスになりすました悪意のあるホストへの接続を防ぐことができます。

この機能を有効にするには、 <ルート> プロジェクト設定 | SSH キー に移動し、 SSH 既知のホスト セクションで サーバーとエージェントの SSH 接続を既知のホストにのみ許可 を選択してください。

SSH 既知のホスト

既知のホストのリストを作成する方法は 2 つあります。

  • 自動 に — 初回接続時に新しいホストを自動的に追加 を有効にします。

  • 手動で で接続する場合は、 既知のホストを追加 をクリックしてください。 パブリックホストの場合は、ホスト名(例: gitlab.com )のみを指定して 自動入力 をクリックすることもできます。 TeamCity が接続し、必要な詳細情報を取得します。

REST API

TeamCity REST API を使用すると、外部アプリケーションやスクリプトが URL 経由で TeamCity リソースにアクセスできます。 この機能を利用して、SSH キーをアップロードし、VCS ルート設定をカスタマイズできます。

アップロード済みの鍵を表示

/app/rest/projects/<project_locator>/sshKeys

新しい SSH キーをプロジェクトにアップロード

/app/rest/projects/<project_locator>/sshKeys?fileName=<Key_Name>
  • 本文: 秘密鍵ファイルの内容

  • Content-Type ヘッダー: 「テキスト / プレーン」

新しい鍵を生成

/app/rest/projects/<project_locator>/sshKeys/generated?keyName=NewKey&keyType=RSA
  • キー名 — 新しいキーの名前である任意の有効な文字列。

  • キータイプ — 「RSA」または「ED25519」のいずれか。

VCS 認証設定をセットアップ

  • 「認証方法」を「アップロードされたキー」に切り替えます。 リクエスト本文: 「TEAMCITY_SSH_KEY」。

    /app/rest/vcs-roots/<locator>/properties/authMethod

  • 特定の SSH キーを選択します。 リクエスト本文: SSH キー名。

    /app/rest/vcs-roots/<locator>/properties/teamcitySshKey

  • パスワードで暗号化された SSH キーに必要なパスフレーズを指定します。 リクエスト本文: プレーンなパスワード文字列。

    /app/rest/vcs-roots/<locator>/properties/secure:passphrase

鍵を削除

/app/rest/projects/<project_locator>/sshKeys?fileName=<Key_Name>
2026 年 9 月 11 日