次の方法で共有


InstallSSHKey@0 - SSH キー v0 タスクをインストールする

ビルドまたはリリースの手順の前に SSH キーをインストールするには、パイプラインでこのタスクを使用します。

構文

# Install SSH key v0
# Install an SSH key prior to a build or deployment.
- task: InstallSSHKey@0
  inputs:
    knownHostsEntry: # string. Alias: hostName. Required. Known Hosts Entry. 
    #sshPublicKey: # string. SSH Public Key. 
    #sshPassphrase: # string. SSH Passphrase. 
    sshKeySecureFile: # string. Required. SSH Key. 
  # Advanced
    #addEntryToConfig: false # boolean. Add entry to SSH config. Default: false.
    #configHostAlias: # string. Required when addEntryToConfig = true. Alias. 
    #configHostname: # string. Required when addEntryToConfig = true. Host name. 
    #configUser: # string. Optional. Use when addEntryToConfig = true. User. 
    #configPort: # string. Optional. Use when addEntryToConfig = true. Port.
# Install SSH key v0
# Install an SSH key prior to a build or deployment.
- task: InstallSSHKey@0
  inputs:
    knownHostsEntry: # string. Alias: hostName. Required. Known Hosts Entry. 
    #sshPublicKey: # string. SSH Public Key. 
    #sshPassphrase: # string. SSH Passphrase. 
    sshKeySecureFile: # string. Required. SSH Key.

入力

knownHostsEntry - 既知のホスト エントリの
入力エイリアス: hostNamestring. 必須。

known_hosts ファイルの SSH キー エントリを指定します。


SSH 公開キーsshPublicKey -
string.

任意 SSH 公開キーの内容を指定します。


SSH パスフレーズsshPassphrase -
string.

任意 SSH キーのパスフレーズ (存在する場合) を指定します。


SSH キーsshKeySecureFile -
string. 必須。

エージェントにインストールする Secure Files にアップロードされた SSH キーを指定します。


addEntryToConfig - SSH 構成にエントリを追加
boolean. 既定値: false.

任意 SSH 構成ファイルにインストールされたキーに関連するエントリを追加します。 キー ファイルは、後続のすべてのタスクで使用できます。


configHostAlias - エイリアスの
string. addEntryToConfig = trueする場合に必要です。

SSH 構成エントリの名前を指定します。


configHostname - ホスト名の
string. addEntryToConfig = trueする場合に必要です。

SSH 構成エントリのホスト名プロパティを指定します。


configUser - ユーザー
string. 任意 addEntryToConfig = trueするときに使用します。

SSH 構成エントリのユーザー名プロパティを指定します。


configPort - ポート
string. 任意 addEntryToConfig = trueするときに使用します。

SSH 構成エントリのポートを指定します。


タスク コントロールのオプション

すべてのタスクには、タスク入力に加えて制御オプションがあります。 詳細については、「コントロール オプションと一般的なタスク プロパティを参照してください。

出力変数

なし。

注釈

ビルドまたはリリースの手順の前に SSH キーをインストールするには、パイプラインでこのタスクを使用します。

このタスクでは、エージェントに Git Bash for Windows が必要です。

使用方法とベスト プラクティス

パイプラインの後の手順で、ホストされているプールに SSH キーをインストールする場合は、一致する公開キーが既に配置されているリモート システムに接続できます。 たとえば、Git リポジトリや Azure の VM に接続できます。

公開キーをプレーン テキストとしてタスク構成に渡さないようにすることをお勧めします。 代わりに、mykey.pub ファイルの内容に対してパイプラインに シークレット変数を設定します。 次に、パイプライン定義の変数を $(myPubKey)として呼び出します。 キーのシークレット部分については、Azure Pipelines の Secure File ライブラリ を使用します。

タスクを作成するには、適切に構成された SSH キーのインストール タスクの次の例を使用します。

steps:
- task: InstallSSHKey@0
  displayName: 'Install an SSH key'
  inputs:
    knownHostsEntry: 'SHA256:1Hyr55tsxGifESBMc0s+2NtutnR/4+LOkVwrOGrIp8U johndoe@contoso'
    sshPublicKey: '$(myPubKey)'
    sshKeySecureFile: 'id_rsa'

公開キーを repository\organization に追加する必要があります。それ以外の場合は、アクセスの問題が発生します。 GitHub の場合は、上記の ガイド従ってください。 Azure DevOps Services の場合は、Azure DevOps Services/TFSに公開キーを追加するを使用します。

同じパイプライン ジョブに複数の SSH キーをインストールする

同じパイプライン ジョブで複数のキーを使用する場合、最初のキーが既定で使用されます。 SSH 接続を確立するときに目的のキーを使用できるようにするには、InstallSSHKey タスクの Advanced セクションを使用して、addEntryToConfigconfigHostAliasconfigHostnameconfigUserconfigPortの各パラメーターを設定できます。

これらのパラメーターを使用すると、エイリアスを使用してカスタム スクリプトで使用するために、SSH 構成ファイル (Linux の場合は /root/.ssh/config など) にホストを追加できます。

ビルドが完了すると、タスクは元の SSH 構成ファイルの復元を試みます。 SSH 構成ファイルが最初に存在しなかった場合、ホストはエージェントから削除されます。

複数の SSH キーのインストールの例。 複数の GitHub リポジトリとそれぞれの独自のキーを含むケース:

pool: <Some Agent Pool>

steps:
- task: InstallSSHKey@0
  inputs:
    knownHostsEntry: $(known_host)
    sshPublicKey: $(first_public_key)
    sshKeySecureFile: $(first_private_key)
    addEntryToConfig: true
    configHostAlias: <first-host-alias>
    configHostname: github.com
    configUser: git
  displayName: Install First Repo SSH Key

- task: InstallSSHKey@0
  inputs:
    knownHostsEntry: $(known_host)
    sshPublicKey: $(second_public_key)
    sshKeySecureFile: $(second_private_key)
    addEntryToConfig: true
    configHostAlias: <second-host-alias>
    configHostname: github.com
    configUser: git
  displayName: Install Second Repo SSH Key

- bash: git clone git@<first-host-alias>:<owner>/<first-repo>.git
  displayName: Clone First Repo

- bash: git clone git@<second-host-alias>:<owner>/<second-repo>.git
  displayName: Clone Second Repo

関連する GitHub ドキュメント します。

例示

GitHub を使用したセットアップ例

このセクションでは、Azure Pipelines 内から YAML でプライベート GitHub リポジトリを使用する方法について説明します。

オープンソース コミュニティに公開したくないリポジトリがある場合は、リポジトリをプライベートにするのが一般的な方法です。 ただし、Azure DevOps などの CI/CD ツールを使用してリポジトリを管理する場合は、リポジトリにアクセスする必要があります。 Azure DevOps へのアクセス権を付与するには、GitHub へのアクセスを認証するために SSH キーが必要な場合があります。

SSH キーを使用して GitHub へのアクセスを認証する手順を次に示します。

  1. GitHub から Azure DevOps へのアクセスを認証するために使用するキー ペアを生成します。

    1. GitBash で、次のコマンドを実行します。

      ssh-keygen -t rsa
      
    2. SSH キー ペアの名前を入力します。 この例では、myKey 使用します。

      SSH キー ペアの名前を入力するための GitBash プロンプトのスクリーンショット。

    3. (省略可能)秘密キーを暗号化するパスフレーズを入力できます。 このステップはオプションです。 パスフレーズを使用する方が、パスフレーズを使用しないよりも安全です。

      SSH キー ペアのパスフレーズを入力するための GitBash プロンプトのスクリーンショット。

      ssh-keygen SSH キー ペアが作成され、次の成功メッセージが表示されます。

      SSH キー ペアが作成されたことを示す GitBash メッセージのスクリーンショット。

    4. Windows エクスプローラーで、新しく作成したキー ペアを確認します。

      Windows エクスプローラーのキー ペア ファイルのスクリーンショット。

  2. 公開キーを GitHub リポジトリに追加します。 (公開キーは ".pub" で終わります)。 これを行うには、ブラウザーで次の URL に移動します:https://github.com/(organization-name)/(repository-name)/settings/keys

    1. [Add deploy key]\(デプロイ キーの追加\) を選択します。

    2. [新しい の追加] ダイアログ ボックスで、タイトルを入力し、SSH キーをコピーして貼り付けます。

      [新しい追加] ダイアログ ボックスのスクリーンショット。

    3. キーの追加を選択します。

  3. 秘密キーを Azure DevOps にアップロードします。

    1. Azure DevOps の左側のメニューで、[Pipelines >Library] を選択します。

      Azure Pipelines メニューのスクリーンショット。

    2. [セキュリティで保護されたファイル >+ ファイルをセキュリティで保護する] を選択します。

      [ファイルのセキュリティで保護] メニューのスクリーンショット。

    3. 参照を選択し、秘密キーを選択します。

      [ファイルのアップロード] ダイアログ ボックスと [参照] ボタンのスクリーンショット。

  4. "既知のホスト エントリ" を回復します。 GitBash で、次のコマンドを入力します。

    ssh-keyscan github.com
    

    "既知のホスト エントリ" は、GitBash の結果の # で始まらない表示値です。

    GitBash の主要な検索結果のスクリーンショット。

  5. YAML パイプラインを作成します。

    YAML パイプラインを作成するには、YAML 定義に次のタスクを追加します。

    - task: InstallSSHKey@0
     inputs:
       knownHostsEntry: #{Enter your Known Hosts Entry Here}
       sshPublicKey: #{Enter your Public key Here}
       sshKeySecureFile: #{Enter the name of your key in "Secure Files" Here}
    

SSH キーがインストールされ、既定の HTTPS ではなく SSH を使用して接続するスクリプトを続行できます。

必要条件

要件 説明
パイプラインの種類 YAML、クラシック ビルド、クラシック リリース
実行日 エージェント、DeploymentGroup
の需要 なし
機能の このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。
コマンドの制限 このタスクは、次の コマンド制限: restricted を使用して実行されます。
設定可能な変数 このタスクには、SSH_AGENT_PID、SSH_AUTH_SOCK、INSTALL_SSH_KEY_CONFIG_LOCATION、INSTALL_SSH_KEY_KNOWN_HOSTS_LOCATIONの変数 設定する権限があります。
エージェントのバージョン 2.182.1 以上
タスク カテゴリ 効用
要件 説明
パイプラインの種類 YAML、クラシック ビルド、クラシック リリース
実行日 エージェント、DeploymentGroup
の需要 なし
機能の このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。
コマンドの制限 どれでも
設定可能な変数 どれでも
エージェントのバージョン 2.117.0 以上
タスク カテゴリ 効用