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
-
既知のホスト エントリの
入力エイリアス: hostName
。
string
. 必須。
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
セクションを使用して、addEntryToConfig
、configHostAlias
、configHostname
、configUser
、configPort
の各パラメーターを設定できます。
これらのパラメーターを使用すると、エイリアスを使用してカスタム スクリプトで使用するために、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 を使用したセットアップ例
このセクションでは、Azure Pipelines 内から YAML でプライベート GitHub リポジトリを使用する方法について説明します。
オープンソース コミュニティに公開したくないリポジトリがある場合は、リポジトリをプライベートにするのが一般的な方法です。 ただし、Azure DevOps などの CI/CD ツールを使用してリポジトリを管理する場合は、リポジトリにアクセスする必要があります。 Azure DevOps へのアクセス権を付与するには、GitHub へのアクセスを認証するために SSH キーが必要な場合があります。
SSH キーを使用して GitHub へのアクセスを認証する手順を次に示します。
GitHub から Azure DevOps へのアクセスを認証するために使用するキー ペアを生成します。
GitBash で、次のコマンドを実行します。
ssh-keygen -t rsa
SSH キー ペアの名前を入力します。 この例では、myKey 使用します。
(省略可能)秘密キーを暗号化するパスフレーズを入力できます。 このステップはオプションです。 パスフレーズを使用する方が、パスフレーズを使用しないよりも安全です。
ssh-keygen
SSH キー ペアが作成され、次の成功メッセージが表示されます。Windows エクスプローラーで、新しく作成したキー ペアを確認します。
公開キーを GitHub リポジトリに追加します。 (公開キーは ".pub" で終わります)。 これを行うには、ブラウザーで次の URL に移動します:
https://github.com/(organization-name)/(repository-name)/settings/keys
。[Add deploy key]\(デプロイ キーの追加\) を選択します。
[新しい の追加] ダイアログ ボックスで、タイトルを入力し、SSH キーをコピーして貼り付けます。
キーの追加を選択します。
秘密キーを Azure DevOps にアップロードします。
Azure DevOps の左側のメニューで、[Pipelines >Library] を選択します。
[セキュリティで保護されたファイル >+ ファイルをセキュリティで保護する] を選択します。
参照を選択し、秘密キーを選択します。
"既知のホスト エントリ" を回復します。 GitBash で、次のコマンドを入力します。
ssh-keyscan github.com
"既知のホスト エントリ" は、GitBash の結果の # で始まらない表示値です。
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 以上 |
タスク カテゴリ | 効用 |