Delen via


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, configUseren 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

Verwante GitHub-documenten.

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:

  1. Genereer een sleutelpaar voor het verifiëren van toegang van GitHub tot Azure DevOps:

    1. Voer in GitBash de volgende opdracht uit:

      ssh-keygen -t rsa
      
    2. Voer een naam in voor het SSH-sleutelpaar. In ons voorbeeld gebruiken we myKey.

      Schermopname van de GitBash-prompt om een naam in te voeren voor uw SSH-sleutelpaar.

    3. (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.

      Schermopname van de GitBash-prompt voor het invoeren van een wachtwoordzin voor uw SSH-sleutelpaar.

      ssh-keygen maakt de SSH-sleutelparen en het volgende bericht wordt weergegeven:

      Schermopname van het GitBash-bericht dat laat zien dat er een SSH-sleutelpaar is gemaakt.

    4. Controleer in Windows Bestandenverkenner het zojuist gemaakte sleutelpaar:

      Schermopname van de sleutelpaarbestanden in Windows Bestandenverkenner.

  2. 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.

    1. Selecteer Implementatiesleutel toevoegen.

    2. Voer in het dialoogvenster Nieuwe toevoegen een titel in en kopieer en plak de SSH-sleutel:

      Schermopname van het dialoogvenster Nieuwe toevoegen.

    3. Selecteer Sleutel toevoegen.

  3. Upload uw persoonlijke sleutel naar Azure DevOps:

    1. Selecteer in Azure DevOps in het linkermenu Pijplijnenbibliotheek>.

      Schermopname van het menu Azure Pipelines.

    2. Selecteer Beveiligde bestanden>+ Beveiligd bestand:

      Schermopname van het menu Bestanden beveiligen.

    3. Selecteer Bladeren en selecteer vervolgens uw persoonlijke sleutel:

      Schermopname van het dialoogvenster Bestand uploaden en de knop Bladeren.

  4. 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:

    Schermopname van de belangrijkste zoekresultaten in GitBash.

  5. 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