SSH 鍵管理
秘密 SSH キーを TeamCity プロジェクトにアップロードできます。アップロードされたキーは、VCS ルートの設定時および SSH エージェントビルド機能で使用できます。
サポートされているキー形式
TeamCity は、PEM および OpenSSH 形式のキーをサポートします。異なる形式を使用するキーは変換する必要があります。例: PuTTY キージェネレーター(英語)を使用して、サポートされていない Putty 秘密鍵 (*.ppk) を PEM 形式に変換できます。これを行うには、変換 | OpenSSH キーをエクスポートするメニューに移動します。
SSH キーを TeamCity サーバーにアップロードする
TeamCity プロジェクトが SSH URL 経由でリモートリポジトリにアクセスできるようにするには、まずこれらのプロジェクトに秘密鍵をアップロードする必要があります。
プロジェクト設定で、SSH キーをクリックします。
SSH キーページで、SSH キーをアップロードをクリックします。

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

アップロードされた SSH キーは次のディレクトリに保存されます。
<TeamCity Data Directory>/config/projects/<project>/pluginData/ssh_keys
「プロジェクトの作成」ページからキーがアップロードされた場合、TeamCity はそれを作成されたプロジェクトの親プロジェクトに割り当てます。この場合、アップロードされたキーは次のディレクトリに保存されます。
<TeamCity Data Directory>/config/projects/<Parent_Project_ID>/pluginData/ssh_keys
生成された SSH キー
GitHub デプロイキー(英語)または同様の認証ワークフローを使用する場合は、SSH キーを手動で生成する代わりに、TeamCity に生成させることができます。このアプローチはより安全であり (生成されたキーはローカルマシンに保存されないため)、大幅に高速です。後者は、SSH キーを時々再生成してローテーションする場合に特に役立ちます。
プロジェクト設定で、SSH キーをクリックします。
SSH キーの生成ボタンをクリックしてください。

キー名を入力し、キーのタイプを選択して、「生成」をクリックします。
新しく生成されたキーの秘密鍵または公開鍵が必要な場合は、次のようにします。
秘密鍵は
<TeamCity Data Directory>/config/projects/<parent project>/pluginData/ssh_keysディレクトリに保存されます。公開鍵には、メインの SSH キーページからアクセスできます (必要なキーにある公開鍵をコピーするリンクをクリックします)。このキーをバージョン管理サービスに貼り付けます (たとえば、GitHub で: 「リポジトリ設定 | デプロイキー | デプロイキーの追加」)。
TeamCity VCS ルートの認証設定で生成されたキーを選択します。便宜上、TeamCity で生成されたキーは別のカテゴリに配置されます。

VCS ルート設定の構成
プライベート SSH キーは、VCS ルートが SSH URL (たとえば、git@github.com:...) 経由でリモートリポジトリを操作するように設定されている場合にのみ使用されます。SSH URL を使用してプロジェクトを作成し、「プロジェクトの作成」ページからプライベートキーを選択 / アップロードすると、TeamCity によって必要な設定が自動的に行われるため、VCS ルートの設定を変更する必要はありません。
それ以外の場合、トークンまたはパスワードを介して VCS に認証するプロジェクトを更新して、代わりに SSH キーを使用するようにするには、対応する VCS ルートの設定を手動で更新する必要があります。
管理 | <あなたのプロジェクト> | VCS のルートに移動し、必要なルートの横にある編集をクリックします。
代わりに SSH URL を使用するには、URL を取得フィールドとプッシュ URL フィールドを更新します。例:
https://github.com/username/repository_name.gitをgit@github.com:username/repository_name.gitに変更します。認証設定までスクロールし、秘密鍵オプションのいずれかを選択します。

アップロードされたキー — プロジェクトにアップロードされたキーを利用するには、このオプションを選択します。
デフォルトの秘密鍵 — このオプションを選択すると、一般的な ssh ツールで使用されるデフォルトの場所にあるファイルシステムで使用可能なキーが使用されます。ファイルが存在する場合は
<USER_HOME>/.ssh/configで指定されたマッピング、または秘密鍵ファイル<USER_HOME>/.ssh/id_rsa(ファイルはサーバー上に存在する必要があり、またエージェント側のチェックアウトが使用されている場合はエージェントで)。カスタム秘密鍵 — サポートされているサーバー側チェックアウトのみ。秘密鍵パスフィールドに、サーバーマシン上の秘密鍵ファイルへの絶対パスを入力します。キーが暗号化されている場合は、対応するフィールドにパスフレーズを指定します。
ページの下部にある接続のテストをクリックして現在の値を確認し、適用をクリックしてルート設定を保存して終了します。
SSH キーをビルドエージェントに配布する
エージェント側のチェックアウトを構成すると、サーバーは SSH キーをエージェントに渡します。ビルド中に、Git プラグインはサーバーからエージェントにキーをダウンロードし、git fetch/clone の補完後にこのキーを削除します。
サーバーからエージェントにキーを転送するために、TeamCity は DES 対称暗号でキーを暗号化します。より安全な方法のために、エージェントとサーバー間の HTTPS 接続を構成します。
VCS ルートに加えて、アップロードされた SSH キーを SSH エージェントビルド機能で使用できます。詳細については、リンク SSH エージェントを参照してください。
既知の SSH ホスト
SSH キーを使用することで、TeamCity はリモートのリソースに安全にアクセスできます。リモートホスト(たとえば、GitHub のような VCS プロバイダ)に接続する際、ホストは TeamCity の秘密鍵を検証することで、TeamCity を認証します。
セキュリティをさらに強化するために、逆のプロセスであるホスト検証を有効にすることもできます。このモードでは、TeamCity は接続を確立する前にホストの公開鍵を確認します。鍵が既知の値と一致しない場合、接続は拒否されます。これにより、信頼できるサービスになりすました悪意のあるホストへの接続を防ぐことができます。
この機能を有効にするには、<ルート> プロジェクト設定 | SSH キーに移動し、SSH 既知のホストセクションでサーバーとエージェントの SSH 接続は既知のホストに対してのみ許可するを選択してください。

既知のホストのリストを作成する方法は 2 つあります。
自動的に — 初回接続時に新しいホストを自動的に追加するを有効にします。
手動で接続する場合は、既知のホストを追加するをクリックしてください。パブリックホストの場合は、ホスト名(例:
gitlab.com)のみを指定して自動入力をクリックすることもできます。TeamCity が接続し、必要な詳細情報を取得します。
REST API
TeamCity REST API を使用すると、外部アプリケーションとスクリプトが URL 経由で TeamCity リソースにアクセスできるようになります。この機能を利用して、SSH キーをアップロードし、VCS ルート設定をカスタマイズできます。
アップロードされたキーを表示する
新しい SSH キーをプロジェクトにアップロードする
本文: 秘密鍵ファイルの内容
Content-Type ヘッダー: 「テキスト / プレーン」
新しいキーを生成する
keyName— 新しいキーの名前である任意の有効な文字列。keyType— 「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
キーを削除する
関連ページ:
SSH エージェント
SSH エージェントビルド機能は、ビルド中に、アップロードされた SSH キーを選択して SSH エージェントを実行します。ビルドスクリプトが SSH クライアントを実行すると、読み込まれたキーを使用して SSH エージェントが使用されます。SSH キーのアップロードに関するメモについては、SSH 鍵管理を確認してください。エージェントのセットアップ:TeamCity SSH エージェントは、Linux および macOS に含まれる OpenSSH のネイティブ SSH エージェントを使用す...
プロジェクトの作成と編集
TeamCity では、実際のビルドタスクはビルド構成とパイプラインによって実行されます。ただし、どちらもプロジェクト内に配置する必要があります。このトピックでは、プロジェクトを作成するさまざまな方法を説明します。ルートプロジェクトと設定の継承:始める前に、すべての TeamCity サーバーには、ルートプロジェクトと呼ばれる削除不可能な組み込みプロジェクトが含まれていることにご注意ください。すべての新しいプロジェクトはこのプロジェクトの子として作成されますが、ビルド構成やパイプラインを直接ホ...
ビルド構成の作成と編集
ビルド構成とパイプラインは、実際の CI/CD ルーチンを表します。ビルド構成には、一連のビルドステップ(ビルド実行中に実行される基本操作)と、これらのステップの実行に必要な設定が格納されます。これらの設定には以下が含まれます。構成の動作をすばやく変更できるパラメーター。特定の条件が満たされたときに TeamCity が自動的に新しいビルドを開始できるようにするトリガー。構成の機能を拡張する機能を構築します。特定のビルドエージェントで構成ビルドを実行できるようにするエージェント要件。その他。ビル...
TeamCity データディレクトリ
TeamCity データディレクトリは、TeamCity サーバーが構成、ビルド結果、現在の操作ファイルを保存するために使用するファイルシステム上のディレクトリです。このディレクトリは、すべての構成設定の 1 次ストレージであり、TeamCity のインストールに不可欠なデータを保持します。ビルド履歴、ユーザーとそのデータ、その他のデータはデータベースに保存されます。ディレクトリとデータベースに保存されるデータの説明については、バックアップに関する注意事項を参照してください。このドキュメントや他...
TeamCity の設定とメンテナンス
サーバー構成を変更するには、管理 | グローバル設定に移動します。次の設定ブロックを使用できます。TeamCity の設定:データベース実行中の TeamCity サーバーによって使用されるデータベース。データディレクトリディレクトリを参照できる \<TeamCity データディレクトリ \> パス。アーティファクトディレクトリ TeamCity サーバーがビルドアーティファクト、ビルドログ、その他のビルドデータを保存するために使用するルートディレクトリのリスト。デフォルトの場所はです...
Git
TeamCity は、Git をすぐにサポートします。Azure DevOps Services を使用した Git ソース管理がサポートされています (以下の認証に関する注意事項を参照)。このページには、VCS ルート設定の Git 固有のフィールドの説明が含まれています。一般的な VCS ルートプロパティについては、このセクションを参照してください。注意事項: リモート実行とテスト済みのコミットは IntelliJ IDEA プラグインでサポートされています。Visual Studio アドインで...