InstallSSHKey@0 - Tâche Installer la clé SSH v0
Utilisez cette tâche dans un pipeline pour installer une clé SSH avant une étape de génération ou de mise en production.
Syntax
# 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.
Entrées
knownHostsEntry
- Entrée d’hôtes connus
Alias d’entrée : hostName
. string
. Obligatoire.
Spécifie l’entrée de clé SSH pour le fichier known_hosts.
sshPublicKey
- Clé publique SSH
string
.
facultatif. Spécifie le contenu de la clé SSH publique.
sshPublicKey
- Clé publique SSH
string
. Obligatoire.
Spécifie le contenu de la clé SSH publique.
sshPassphrase
- Phrase secrète SSH
string
.
facultatif. Spécifie la phrase secrète de la clé SSH, le cas échéant.
sshKeySecureFile
- Clé SSH
string
. Obligatoire.
Spécifie la clé SSH sur laquelle a été chargé l’installation Secure Files
sur l’agent.
addEntryToConfig
- Ajouter une entrée à la configuration SSH
boolean
. Valeur par défaut : false
.
facultatif. Ajoute une entrée liée à la clé qui a été installée dans le fichier de configuration SSH. Le fichier de clé sera disponible pour toutes les tâches suivantes.
configHostAlias
- Alias
string
. Obligatoire quand addEntryToConfig = true
.
Spécifie le nom de l’entrée de configuration SSH.
configHostname
- Nom d’hôte
string
. Obligatoire quand addEntryToConfig = true
.
Spécifie la propriété de nom d’hôte de l’entrée de configuration SSH.
configUser
- Utilisateur
string
. facultatif. Utilisez quand addEntryToConfig = true
.
Spécifie la propriété nom d’utilisateur de l’entrée de configuration SSH.
configPort
- Port
string
. facultatif. Utilisez quand addEntryToConfig = true
.
Spécifie le port de l’entrée de configuration SSH.
hostName
- Entrée d’hôtes connus
string
. Obligatoire.
Spécifie l’entrée de clé SSH pour le fichier known_hosts.
Options de contrôle des tâches
Toutes les tâches ont des options de contrôle en plus de leurs entrées de tâches. Pour plus d’informations, consultez Options de contrôle et propriétés de tâche courantes.
Variables de sortie
Aucun.
Notes
Utilisez cette tâche dans un pipeline pour installer une clé SSH avant une étape de génération ou de mise en production.
Notes
Cette tâche nécessitait Git Bash pour Windows sur l’agent.
Utilisation et meilleures pratiques
Si vous installez une clé SSH dans les pools hébergés, dans les étapes ultérieures de votre pipeline, vous pouvez vous connecter à un système distant dans lequel la clé publique correspondante est déjà en place. Par exemple, vous pouvez vous connecter à un dépôt Git ou à une machine virtuelle dans Azure.
Nous vous recommandons de ne pas passer votre clé publique en texte brut à la configuration de la tâche. Au lieu de cela, définissez une variable secrète dans votre pipeline pour le contenu de votre mykey.pub
fichier. Ensuite, appelez la variable dans votre définition de pipeline en tant que $(myPubKey)
. Pour la partie secrète de votre clé, utilisez la bibliothèque de fichiers sécurisés dans Azure Pipelines.
Pour créer votre tâche, utilisez l’exemple suivant d’une tâche d’installation de clé SSH bien configurée :
steps:
- task: InstallSSHKey@0
displayName: 'Install an SSH key'
inputs:
knownHostsEntry: 'SHA256:1Hyr55tsxGifESBMc0s+2NtutnR/4+LOkVwrOGrIp8U johndoe@contoso'
sshPublicKey: '$(myPubKey)'
sshKeySecureFile: 'id_rsa'
Notes
Votre clé publique doit être ajoutée au dépôt\organisation ; sinon, il y aura des problèmes d’accès. Pour GitHub, suivez le guide ci-dessus. Pour Azure DevOps Services, utilisez Ajouter la clé publique à Azure DevOps Services/TFS.
Installation de plusieurs clés SSH dans le même travail de pipeline
Lorsque vous utilisez plusieurs clés dans le même travail de pipeline, la première est utilisée par défaut. Pour pouvoir utiliser la clé souhaitée lors de l’établissement d’une connexion SSH, vous pouvez utiliser la Advanced
section de la InstallSSHKey
tâche pour définir les paramètres suivants : addEntryToConfig
, configHostAlias
, configHostname
, configUser
et configPort
.
Ces paramètres vous permettent d’ajouter un hôte au fichier de configuration SSH (par exemple, /root/.ssh/config
pour Linux) afin de l’utiliser dans des scripts personnalisés via un alias.
Une fois la génération terminée, la tâche tente de restaurer le fichier de configuration SSH d’origine. S’il n’y avait pas de fichier de configuration SSH initialement, l’hôte est supprimé de l’agent.
Exemple d’installation de plusieurs clés SSH. Le cas avec plusieurs dépôts GitHub et leur propre clé pour chacun d’eux :
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
Exemples
Exemple de configuration à l’aide de GitHub
Cette section explique comment utiliser un dépôt GitHub privé avec YAML à partir d’Azure Pipelines.
Si vous avez un dépôt que vous ne souhaitez pas exposer à la communauté open source, une pratique courante consiste à le rendre privé. Toutefois, un outil CI/CD comme Azure DevOps doit accéder au dépôt si vous souhaitez utiliser l’outil pour gérer le dépôt. Pour accorder l’accès à Azure DevOps, vous aurez peut-être besoin d’une clé SSH pour authentifier l’accès à GitHub.
Voici les étapes à suivre pour utiliser une clé SSH pour authentifier l’accès à GitHub :
Générez une paire de clés à utiliser pour authentifier l’accès de GitHub à Azure DevOps :
Dans GitBash, exécutez la commande suivante :
ssh-keygen -t rsa
Entrez un nom pour la paire de clés SSH. Dans notre exemple, nous utilisons myKey.
(Facultatif) Vous pouvez entrer une phrase secrète pour chiffrer votre clé privée. Cette étape est facultative. L’utilisation d’une phrase secrète est plus sécurisée que l’utilisation d’une phrase secrète.
ssh-keygen
crée les paires de clés SSH et le message de réussite suivant s’affiche :Dans Windows Explorateur de fichiers, vérifiez la paire de clés nouvellement créée :
Ajoutez la clé publique au dépôt GitHub. (La clé publique se termine par .pub). Pour ce faire, accédez à l’URL suivante dans votre navigateur :
https://github.com/(organization-name)/(repository-name)/settings/keys
.Sélectionnez Ajouter une clé de déploiement.
Dans la boîte de dialogue Ajouter un nouveau , entrez un titre, puis copiez et collez la clé SSH :
Sélectionnez Ajouter une clé.
Chargez votre clé privée dans Azure DevOps :
Dans Azure DevOps, dans le menu de gauche, sélectionnezBibliothèquede pipelines>.
Sélectionnez Fichiers sécurisés>+ Fichier sécurisé :
Sélectionnez Parcourir, puis sélectionnez votre clé privée :
Récupérez votre « entrée d’hôtes connus ». Dans GitBash, entrez la commande suivante :
ssh-keyscan github.com
Votre « Entrée d’hôtes connus » est la valeur affichée qui ne commence pas par # dans les résultats GitBash :
Créez un pipeline YAML.
Pour créer un pipeline YAML, dans la définition YAML, ajoutez la tâche suivante :
- 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}
Les clés SSH sont maintenant installées et vous pouvez utiliser le script pour vous connecter à l’aide de SSH, et non du protocole HTTPS par défaut.
Spécifications
Condition requise | Description |
---|---|
Types de pipelines | YAML, build classique, version classique |
S’exécute sur | Agent, DeploymentGroup |
Demandes | Aucun |
Capabilities | Cette tâche ne répond à aucune demande pour les tâches suivantes dans le travail. |
Restrictions de commande | Cette tâche s’exécute à l’aide des restrictions de commande suivantes : restricted |
Variables paramétrables | Cette tâche est autorisée à définir les variables suivantes : SSH_AGENT_PID, SSH_AUTH_SOCK, INSTALL_SSH_KEY_CONFIG_LOCATION, INSTALL_SSH_KEY_KNOWN_HOSTS_LOCATION |
Version de l’agent | 2.182.1 ou version ultérieure |
Catégorie de la tâche | Utilitaire |
Condition requise | Description |
---|---|
Types de pipelines | YAML, build classique, version classique |
S’exécute sur | Agent, DeploymentGroup |
Demandes | Aucun |
Capabilities | Cette tâche ne répond à aucune demande pour les tâches suivantes dans le travail. |
Restrictions de commande | Quelconque |
Variables paramétrables | Quelconque |
Version de l’agent | 2.117.0 ou version ultérieure |
Catégorie de la tâche | Utilitaire |