InstallSSHKey@0 . Установка ключа SSH версии 0
Используйте эту задачу в конвейере для установки ключа 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
- Запись известных узлов
Входной псевдоним: hostName
. string
. Обязательный.
Указывает запись ключа SSH для файла known_hosts.
sshPublicKey
- Открытый ключ SSH
string
.
Необязательный элемент. Указывает содержимое открытого ключа SSH.
sshPublicKey
- Открытый ключ SSH
string
. Обязательный.
Указывает содержимое открытого ключа SSH.
sshPassphrase
- Парольная фраза SSH
string
.
Необязательный элемент. Указывает парольную фразу для ключа SSH, если таковой есть.
sshKeySecureFile
- Ключ SSH
string
. Обязательный.
Указывает ключ SSH, переданный Secure Files
для установки в агенте.
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
. Обязательный.
Указывает запись ключа SSH для файла known_hosts.
Параметры управления задачами
Все задачи имеют параметры управления в дополнение к входным данным задачи. Дополнительные сведения см. в разделе Параметры управления и общие свойства задачи.
Выходные переменные
Нет.
Remarks
Используйте эту задачу в конвейере для установки ключа SSH перед этапом сборки или выпуска.
Примечание
Для выполнения этой задачи требуется Git Bash для Windows в агенте.
Использование и рекомендации
Если вы установите ключ SSH в размещенных пулах, на последующих шагах конвейера вы сможете подключиться к удаленной системе, в которой соответствующий открытый ключ уже установлен. Например, можно подключиться к репозиторию Git или к виртуальной машине в Azure.
Не рекомендуется передавать открытый ключ в виде обычного текста в конфигурацию задачи. Вместо этого задайте в конвейере переменную секрета для содержимого mykey.pub
файла. Затем вызовите переменную в определении конвейера как $(myPubKey)
. Для секретной части ключа используйте библиотеку Secure File в Azure Pipelines.
Чтобы создать задачу, используйте следующий пример правильно настроенной задачи Установки ключа SSH:
steps:
- task: InstallSSHKey@0
displayName: 'Install an SSH key'
inputs:
knownHostsEntry: 'SHA256:1Hyr55tsxGifESBMc0s+2NtutnR/4+LOkVwrOGrIp8U johndoe@contoso'
sshPublicKey: '$(myPubKey)'
sshKeySecureFile: 'id_rsa'
Примечание
Открытый ключ должен быть добавлен в репозиторий\организацию; в противном случае будут проблемы с доступом. Для GitHub следуйте инструкциям выше. Для Azure DevOps Services используйте команду Добавить открытый ключ в Azure DevOps Services/TFS.
Установка нескольких ключей SSH в одном задании конвейера
При использовании нескольких ключей в одном задании конвейера по умолчанию используется первый ключ. Чтобы иметь возможность использовать нужный ключ при установке SSH-подключения, можно использовать Advanced
раздел InstallSSHKey
задачи, чтобы задать следующие параметры: addEntryToConfig
, configHostAlias
, configHostname
, configUser
и configPort
.
Эти параметры позволяют добавить узел в файл конфигурации SSH (например, /root/.ssh/config
для 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
В этом разделе описывается, как использовать частный репозиторий GitHub с YAML из Azure Pipelines.
Если у вас есть репозиторий, который вы не хотите предоставлять сообществу с открытым кодом, обычно следует сделать репозиторий частным. Однако средству CI/CD, например Azure DevOps, требуется доступ к репозиторию, если вы хотите использовать его для управления репозиторием. Чтобы предоставить Доступ к Azure DevOps, может потребоваться ключ SSH для проверки подлинности доступа к GitHub.
Ниже приведены инструкции по использованию ключа 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 в меню слева выберите Библиотека конвейеров>.
Выберите Безопасные файлы>+ Безопасный файл:
Нажмите кнопку Обзор, а затем выберите закрытый ключ:
Восстановите запись известных узлов. В 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 теперь установлены, и вы можете перейти к скрипту для подключения по протоколу SSH, а не по протоколу HTTPS по умолчанию.
Требования
Требование | Описание |
---|---|
Типы конвейеров | YAML, классическая сборка, классический выпуск |
Выполняется в | Агент, DeploymentGroup |
Требования | Нет |
Capabilities | Эта задача не удовлетворяет требованиям для последующих задач в задании. |
Ограничения команд | Эта задача выполняется с использованием следующих ограничений команд: restricted |
Устанавливаемые переменные | Эта задача имеет разрешение на задание следующих переменных: SSH_AGENT_PID, SSH_AUTH_SOCK, INSTALL_SSH_KEY_CONFIG_LOCATION INSTALL_SSH_KEY_KNOWN_HOSTS_LOCATION |
Версия агента | 2.182.1 или более поздней версии |
Категория задач | Служебная программа |
Требование | Описание |
---|---|
Типы конвейеров | YAML, классическая сборка, классический выпуск |
Выполняется в | Агент, DeploymentGroup |
Требования | Нет |
Capabilities | Эта задача не удовлетворяет требованиям для последующих задач в задании. |
Ограничения команд | Любой |
Устанавливаемые переменные | Любой |
Версия агента | 2.117.0 или более поздней версии |
Категория задач | Служебная программа |