InstallSSHKey@0 - SSH-sleutel v0-taak installeren
Gebruik deze taak in een pijplijn om een SSH-sleutel te installeren voorafgaand aan een build- of releasestap.
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.
Invoerwaarden
knownHostsEntry
- Vermelding bekende hosts
Invoeralias: hostName
. string
. Vereist.
Hiermee geeft u de SSH-sleutelvermelding voor het known_hosts-bestand.
sshPublicKey
- Openbare SSH-sleutel
string
.
Optioneel. Hiermee geeft u de inhoud van de openbare SSH-sleutel.
sshPublicKey
- Openbare SSH-sleutel
string
. Vereist.
Hiermee geeft u de inhoud van de openbare SSH-sleutel.
sshPassphrase
- SSH-wachtwoordzin
string
.
Optioneel. Hiermee geeft u de wachtwoordzin voor de SSH-sleutel, indien aanwezig.
sshKeySecureFile
- SSH-sleutel
string
. Vereist.
Hiermee geeft u de SSH-sleutel op Secure Files
waarnaar is geüpload om op de agent te installeren.
addEntryToConfig
- Vermelding toevoegen aan SSH-configuratie
boolean
. Standaardwaarde: false
.
Optioneel. Hiermee voegt u een vermelding toe met betrekking tot de sleutel die is geïnstalleerd in het SSH-configuratiebestand. Het sleutelbestand is beschikbaar voor alle volgende taken.
configHostAlias
- Alias
string
. Vereist wanneer addEntryToConfig = true
.
Hiermee geeft u de naam van de SSH-configuratievermelding.
configHostname
- Hostnaam
string
. Vereist wanneer addEntryToConfig = true
.
Hiermee geeft u de hostnaameigenschap van de SSH-configuratievermelding op.
configUser
- Gebruiker
string
. Optioneel. Gebruik wanneer addEntryToConfig = true
.
Hiermee geeft u de eigenschap gebruikersnaam van de SSH-configuratievermelding.
configPort
- Poort
string
. Optioneel. Gebruik wanneer addEntryToConfig = true
.
Hiermee geeft u de poort van de SSH-configuratievermelding.
hostName
- Vermelding bekende hosts
string
. Vereist.
Hiermee geeft u de SSH-sleutelvermelding voor het known_hosts-bestand.
Opties voor taakbeheer
Alle taken hebben naast de taakinvoer besturingsopties. Zie Opties voor besturingselementen en algemene taakeigenschappen voor meer informatie.
Uitvoervariabelen
Geen.
Opmerkingen
Gebruik deze taak in een pijplijn om een SSH-sleutel te installeren voorafgaand aan een build- of releasestap.
Notitie
Voor deze taak is Git Bash voor Windows vereist op de agent.
Gebruik en best practices
Als u een SSH-sleutel installeert in de gehoste pools, kunt u in latere stappen in uw pijplijn verbinding maken met een extern systeem waarin de overeenkomende openbare sleutel al aanwezig is. U kunt bijvoorbeeld verbinding maken met een Git-opslagplaats of met een VM in Azure.
U wordt aangeraden uw openbare sleutel niet als tekst zonder opmaak door te geven aan de taakconfiguratie. Stel in plaats daarvan een geheime variabele in uw pijplijn in voor de inhoud van het mykey.pub
bestand. Roep vervolgens de variabele in uw pijplijndefinitie aan als $(myPubKey)
. Voor het geheime deel van uw sleutel gebruikt u de beveiligde bestandsbibliotheek in Azure Pipelines.
Gebruik het volgende voorbeeld van een goed geconfigureerde taak SSH-sleutel installeren om uw taak te maken:
steps:
- task: InstallSSHKey@0
displayName: 'Install an SSH key'
inputs:
knownHostsEntry: 'SHA256:1Hyr55tsxGifESBMc0s+2NtutnR/4+LOkVwrOGrIp8U johndoe@contoso'
sshPublicKey: '$(myPubKey)'
sshKeySecureFile: 'id_rsa'
Notitie
Uw openbare sleutel moet worden toegevoegd aan de opslagplaats\organisatie; anders zijn er toegangsproblemen. Voor GitHub volgt u de bovenstaande handleiding. Voor Azure DevOps Services gebruikt u De openbare sleutel toevoegen aan Azure DevOps Services/TFS.
Installatie van meerdere SSH-sleutels in dezelfde pijplijntaak
Wanneer u meer dan één sleutel in dezelfde pijplijntaak gebruikt, wordt standaard de eerste sleutel gebruikt. Als u de gewenste sleutel wilt gebruiken bij het tot stand brengen van een SSH-verbinding, kunt u de Advanced
sectie van de InstallSSHKey
taak gebruiken om de volgende parameters in te stellen: addEntryToConfig
, configHostAlias
, configHostname
, configUser
en configPort
.
Met deze parameters kunt u een host toevoegen aan het SSH-configuratiebestand (bijvoorbeeld /root/.ssh/config
voor Linux) om deze te gebruiken in aangepaste scripts via een alias.
Nadat de build is voltooid, probeert de taak het oorspronkelijke SSH-configuratiebestand te herstellen. Als er in eerste instantie geen SSH-configuratiebestand was, wordt de host verwijderd uit de agent.
Een voorbeeld van de installatie van meerdere SSH-sleutels. De case met verschillende GitHub-opslagplaatsen en hun eigen sleutel voor elke opslagplaats:
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
Voorbeelden
Voorbeeld van installatie met Behulp van GitHub
In deze sectie wordt beschreven hoe u een persoonlijke GitHub-opslagplaats met YAML gebruikt vanuit Azure Pipelines.
Als u een opslagplaats hebt die u niet beschikbaar wilt maken voor de opensource-community, is het gebruikelijk om de opslagplaats privé te maken. Een CI/CD-hulpprogramma zoals Azure DevOps heeft echter toegang tot de opslagplaats nodig als u het hulpprogramma wilt gebruiken om de opslagplaats te beheren. Als u Azure DevOps toegang wilt geven, hebt u mogelijk een SSH-sleutel nodig om de toegang tot GitHub te verifiëren.
Hier volgen de stappen voor het gebruik van een SSH-sleutel om toegang tot GitHub te verifiëren:
Genereer een sleutelpaar voor het verifiëren van toegang van GitHub tot Azure DevOps:
Voer in GitBash de volgende opdracht uit:
ssh-keygen -t rsa
Voer een naam in voor het SSH-sleutelpaar. In ons voorbeeld gebruiken we myKey.
(Optioneel) U kunt een wachtwoordzin invoeren om uw persoonlijke sleutel te versleutelen. Deze stap is optioneel. Het gebruik van een wachtwoordzin is veiliger dan het niet gebruiken van een wachtwoordzin.
ssh-keygen
maakt de SSH-sleutelparen en het volgende bericht wordt weergegeven:Controleer in Windows Bestandenverkenner het zojuist gemaakte sleutelpaar:
Voeg de openbare sleutel toe aan de GitHub-opslagplaats. (De openbare sleutel eindigt op '.pub'). Ga hiervoor naar de volgende URL in uw browser:
https://github.com/(organization-name)/(repository-name)/settings/keys
.Selecteer Implementatiesleutel toevoegen.
Voer in het dialoogvenster Nieuwe toevoegen een titel in en kopieer en plak de SSH-sleutel:
Selecteer Sleutel toevoegen.
Upload uw persoonlijke sleutel naar Azure DevOps:
Selecteer in Azure DevOps in het linkermenu Pijplijnenbibliotheek>.
Selecteer Beveiligde bestanden>+ Beveiligd bestand:
Selecteer Bladeren en selecteer vervolgens uw persoonlijke sleutel:
Herstel uw 'Bekende hosts-vermelding'. Voer in GitBash de volgende opdracht in:
ssh-keyscan github.com
Uw 'Vermelding bekende hosts' is de weergegeven waarde die niet begint met # in de GitBash-resultaten:
Maak een YAML-pijplijn.
Als u een YAML-pijplijn wilt maken, voegt u in de YAML-definitie de volgende taak toe:
- 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}
De SSH-sleutels zijn nu geïnstalleerd en u kunt doorgaan met het script om verbinding te maken met behulp van SSH, en niet met de standaard-HTTPS.
Vereisten
Vereiste | Beschrijving |
---|---|
Pijplijntypen | YAML, klassieke build, klassieke release |
Wordt uitgevoerd op | Agent, DeploymentGroup |
Eisen | Geen |
Functies | Deze taak voldoet niet aan eventuele vereisten voor volgende taken in de taak. |
Opdrachtbeperkingen | Deze taak wordt uitgevoerd met behulp van de volgende opdrachtbeperkingen: beperkt |
Instelbare variabelen | Deze taak is gemachtigd om de volgende variabelen in te stellen: SSH_AGENT_PID, SSH_AUTH_SOCK, INSTALL_SSH_KEY_CONFIG_LOCATION INSTALL_SSH_KEY_KNOWN_HOSTS_LOCATION |
Agentversie | 2.182.1 of hoger |
Taakcategorie | Hulpprogramma |
Vereiste | Beschrijving |
---|---|
Pijplijntypen | YAML, klassieke build, klassieke release |
Wordt uitgevoerd op | Agent, DeploymentGroup |
Eisen | Geen |
Functies | Deze taak voldoet niet aan eventuele vereisten voor volgende taken in de taak. |
Opdrachtbeperkingen | Alle |
Instelbare variabelen | Alle |
Agentversie | 2.117.0 of hoger |
Taakcategorie | Hulpprogramma |