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.
# 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. Required. SSH Public Key. 
    #sshPassphrase: # string. SSH Passphrase. 
    sshKeySecureFile: # string. Required. SSH Key.
# Install SSH Key v0
# Install an SSH key prior to a build or release.
- task: InstallSSHKey@0
  inputs:
    hostName: # string. Required. Known Hosts Entry. 
    sshPublicKey: # string. Required. SSH Public Key. 
    #sshPassphrase: # string. SSH Passphrase. 
    sshKeySecureFile: # string. Required. SSH Key.

入力

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

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


sshPublicKey - SSH 公開キー
string.

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


sshPublicKey - SSH 公開キー
string. 必須です。

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


sshPassphrase - SSH パスフレーズ
string.

省略可能。 SSH キーのパスフレーズ (存在する場合) を指定します。


sshKeySecureFile - SSH キー
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 構成エントリのポートを指定します。


hostName - 既知のホスト エントリ
string. 必須です。

known_hosts ファイルの 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 接続を確立するときに目的のキーを使用できるようにするには、タスクの セクションをAdvanced使用して、パラメーター addEntryToConfig、、configHostAliasconfigHostnameconfigUserconfigPortを設定InstallSSHKeyできます。

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

ビルドが完了すると、タスクは元の 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 の左側のメニューで、[パイプライン> ライブラリ] を選択します

      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
確認要求 なし
Capabilities このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。
コマンドの制限 このタスクは、次の コマンド制限を使用して実行されます。
設定可能な変数 このタスクには、 次の変数を設定するアクセス許可があります:SSH_AGENT_PID、SSH_AUTH_SOCK、INSTALL_SSH_KEY_CONFIG_LOCATION、INSTALL_SSH_KEY_KNOWN_HOSTS_LOCATION
エージェントのバージョン 2.182.1 以上
タスクのカテゴリ ユーティリティ
要件 説明
パイプラインの種類 YAML、クラシック ビルド、クラシック リリース
実行日 エージェント、DeploymentGroup
確認要求 なし
Capabilities このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。
コマンドの制限 Any
設定可能な変数 Any
エージェントのバージョン 2.117.0 以上
タスクのカテゴリ ユーティリティ