InstallSSHKey@0— установка задачи SSH key 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
. Обязательное.
Указывает запись ключа SSH для файла known_hosts.
открытого ключа SSH sshPublicKey
-
string
.
Необязательно. Указывает содержимое открытого ключа SSH.
sshPassphrase
-
парольную фразу SSH
string
.
Необязательно. Указывает парольную фразу для ключа SSH, если таковой есть.
ключа SSH sshKeySecureFile
-
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.
Параметры управления задачами
Помимо входных данных, все задачи имеют параметры управления. Дополнительные сведения см. в разделе Параметры управления и общие свойства задач.
Выходные переменные
Нет.
Замечания
Используйте эту задачу в конвейере для установки ключа SSH до шага сборки или выпуска.
Примечание.
Эта задача требуется Git Bash для Windows в агенте.
Использование и рекомендации
Если вы устанавливаете ключ SSH в размещенных пулов, на последующих шагах в конвейере можно подключиться к удаленной системе, в которой уже установлен соответствующий открытый ключ. Например, можно подключиться к репозиторию Git или к виртуальной машине в Azure.
Рекомендуется не передавать открытый ключ в виде обычного текста в конфигурацию задачи. Вместо этого задать в конвейере переменную секрета для содержимого файла mykey.pub
. Затем вызовите переменную в определении конвейера как $(myPubKey)
. Для секретной части ключа используйте библиотеку безопасных файлов в 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 с 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 в меню слева выберите Pipelines>Library.
Выберите Безопасные файлы>+ Безопасный файл:
Выберите Обзор, а затем выберите закрытый ключ:
Восстановите запись известных узлов. В GitBash введите следующую команду:
ssh-keyscan github.com
Запись известных узлов — это отображаемое значение, которое не начинается с # в результатах GitBash:
Создайте конвейер 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 |
требования | Нет |
возможностей | Эта задача не удовлетворяет требованиям к последующим задачам в задании. |
ограничения команд | Эта задача выполняется с помощью следующих ограничений команд : ограничено. |
переменные settable | Эта задача имеет разрешение на задать следующие переменные: SSH_AGENT_PID, SSH_AUTH_SOCK, INSTALL_SSH_KEY_CONFIG_LOCATION, INSTALL_SSH_KEY_KNOWN_HOSTS_LOCATION |
Версия агента | 2.182.1 или более поздней версии |
Категория задач | Полезность |
Требование | Описание |
---|---|
Типы конвейеров | YAML, классическая сборка, классический выпуск |
Выполняется в | Агент, DeploymentGroup |
требования | Нет |
возможностей | Эта задача не удовлетворяет требованиям к последующим задачам в задании. |
ограничения команд | Любое |
переменные settable | Любое |
Версия агента | 2.117.0 или более поздней версии |
Категория задач | Полезность |