Dela via


InstallSSHKey@0 – Installera SSH-nyckel v0-uppgift

Använd den här uppgiften i en pipeline för att installera en SSH-nyckel före ett bygg- eller versionssteg.

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.

Indata

knownHostsEntry - Post för kända värdar
Indataalias: hostName. string. Krävs.

Anger SSH-nyckelposten för known_hosts-filen.


sshPublicKey - Offentlig SSH-nyckel
string.

Valfritt. Anger innehållet i den offentliga SSH-nyckeln.


sshPublicKey - Offentlig SSH-nyckel
string. Krävs.

Anger innehållet i den offentliga SSH-nyckeln.


sshPassphrase - SSH-lösenfras
string.

Valfritt. Anger lösenfrasen för SSH-nyckeln, om det finns någon.


sshKeySecureFile - SSH-nyckel
string. Krävs.

Anger den SSH-nyckel som laddades upp till för Secure Files att installeras på agenten.


addEntryToConfig - Lägg till post i SSH-konfiguration
boolean. Standardvärde: false.

Valfritt. Lägger till en post som är relaterad till nyckeln som installerades i SSH-konfigurationsfilen. Nyckelfilen kommer att vara tillgänglig för alla efterföljande uppgifter.


configHostAlias - Alias
string. Krävs när addEntryToConfig = true.

Anger namnet på SSH-konfigurationsposten.


configHostname - Värdnamn
string. Krävs när addEntryToConfig = true.

Anger värdnamnsegenskapen för SSH-konfigurationsposten.


configUser - Användaren
string. Valfritt. Använd när addEntryToConfig = true.

Anger användarnamnegenskapen för SSH-konfigurationsposten.


configPort - Port
string. Valfritt. Använd när addEntryToConfig = true.

Anger porten för SSH-konfigurationsposten.


hostName - Post för kända värdar
string. Krävs.

Anger SSH-nyckelposten för known_hosts-filen.


Alternativ för aktivitetskontroll

Alla aktiviteter har kontrollalternativ utöver sina uppgiftsindata. Mer information finns i Kontrollalternativ och vanliga uppgiftsegenskaper.

Utdatavariabler

Inga.

Kommentarer

Använd den här uppgiften i en pipeline för att installera en SSH-nyckel före ett bygg- eller versionssteg.

Anteckning

Den här uppgiften krävde Git Bash för Windows på agenten.

Användning och metodtips

Om du installerar en SSH-nyckel i de värdbaserade poolerna kan du i senare steg i din pipeline ansluta till ett fjärrsystem där matchande offentlig nyckel redan finns på plats. Du kan till exempel ansluta till en Git-lagringsplats eller till en virtuell dator i Azure.

Vi rekommenderar att du inte skickar den offentliga nyckeln som oformaterad text till aktivitetskonfigurationen. Ange i stället en hemlig variabel i pipelinen för innehållet i mykey.pub filen. Anropa sedan variabeln i pipelinedefinitionen som $(myPubKey). Använd secure file library i Azure Pipelines för den hemliga delen av nyckeln.

Använd följande exempel på en välkonfigurerad installera SSH-nyckel för att skapa uppgiften:

steps:
- task: InstallSSHKey@0
  displayName: 'Install an SSH key'
  inputs:
    knownHostsEntry: 'SHA256:1Hyr55tsxGifESBMc0s+2NtutnR/4+LOkVwrOGrIp8U johndoe@contoso'
    sshPublicKey: '$(myPubKey)'
    sshKeySecureFile: 'id_rsa'

Anteckning

Din offentliga nyckel ska läggas till i lagringsplatsen\organisationen. Annars uppstår det åtkomstproblem. För GitHub följer du guiden ovan. För Azure DevOps Services använder du Lägg till den offentliga nyckeln i Azure DevOps Services/TFS.

Installera flera SSH-nycklar i samma pipelinejobb

När du använder mer än en nyckel i samma pipelinejobb används den första som standard. Om du vill kunna använda önskad nyckel när du upprättar en SSH-anslutning kan du använda Advanced avsnittet i InstallSSHKey uppgiften för att ange följande parametrar: addEntryToConfig, configHostAlias, configHostname, configUseroch configPort.

Med de här parametrarna kan du lägga till en värd i SSH-konfigurationsfilen (till exempel /root/.ssh/config för Linux) för att använda den i anpassade skript via ett alias.

När bygget har slutförts försöker uppgiften återställa den ursprungliga SSH-konfigurationsfilen. Om det inte fanns någon SSH-konfigurationsfil från början tas värden bort från agenten.

Ett exempel på installation av flera SSH-nycklar. Fallet med flera GitHub-lagringsplatser och deras egen nyckel för var och en:

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

Relaterade GitHub-dokument.

Exempel

Exempelkonfiguration med GitHub

I det här avsnittet beskrivs hur du använder en privat GitHub-lagringsplats med YAML inifrån Azure Pipelines.

Om du har en lagringsplats som du inte vill exponera för communityn med öppen källkod är det vanligt att göra lagringsplatsen privat. Ett CI/CD-verktyg som Azure DevOps behöver dock åtkomst till lagringsplatsen om du vill använda verktyget för att hantera lagringsplatsen. För att ge Azure DevOps åtkomst kan du behöva en SSH-nyckel för att autentisera åtkomst till GitHub.

Här följer stegen för att använda en SSH-nyckel för att autentisera åtkomst till GitHub:

  1. Generera ett nyckelpar som ska användas för att autentisera åtkomst från GitHub till Azure DevOps:

    1. Kör följande kommando i GitBash:

      ssh-keygen -t rsa
      
    2. Ange ett namn för SSH-nyckelparet. I vårt exempel använder vi myKey.

      Skärmbild av GitBash-prompten för att ange ett namn för SSH-nyckelparet.

    3. (Valfritt) Du kan ange en lösenfras för att kryptera din privata nyckel. Det här är valfritt. Det är säkrare att använda en lösenfras än att inte använda en.

      Skärmbild av GitBash-prompten för att ange en lösenfras för ditt SSH-nyckelpar.

      ssh-keygen skapar SSH-nyckelparen och följande meddelande visas:

      Skärmbild av GitBash-meddelandet som visar att ett SSH-nyckelpar har skapats.

    4. Kontrollera det nyligen skapade nyckelparet i Windows Utforskaren:

      Skärmbild av nyckelparfilerna i Windows Utforskaren.

  2. Lägg till den offentliga nyckeln på GitHub-lagringsplatsen. (Den offentliga nyckeln slutar på ".pub"). Det gör du genom att gå till följande URL i webbläsaren: https://github.com/(organization-name)/(repository-name)/settings/keys.

    1. Välj Lägg till distributionsnyckel.

    2. I dialogrutan Lägg till ny anger du en rubrik och kopierar och klistrar sedan in SSH-nyckeln:

      Skärmbild av dialogrutan Lägg till ny.

    3. Välj Lägg till nyckel.

  3. Ladda upp din privata nyckel till Azure DevOps:

    1. I Azure DevOps går du till den vänstra menyn och väljer Pipelines-bibliotek>.

      Skärmbild av menyn Azure Pipelines.

    2. Välj Säkra filer>+ Säker fil:

      Skärmbild av menyn Säkra filer.

    3. Välj Bläddra och välj sedan din privata nyckel:

      Skärmbild av dialogrutan Ladda upp fil och knappen Bläddra.

  4. Återställ posten "Kända värdar". I GitBash anger du följande kommando:

    ssh-keyscan github.com
    

    Posten "Kända värdar" är det värde som visas och som inte börjar med # i GitBash-resultatet:

    Skärmbild av viktiga sökresultat i GitBash.

  5. Skapa en YAML-pipeline.

    Om du vill skapa en YAML-pipeline lägger du till följande uppgift i YAML-definitionen:

    - 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-nycklarna är nu installerade och du kan fortsätta med skriptet för att ansluta med hjälp av SSH och inte standard-HTTPS.

Krav

Krav Beskrivning
Pipelinetyper YAML, klassisk version, klassisk version
Körs på Agent, DeploymentGroup
Krav Ingen
Funktioner Den här aktiviteten uppfyller inte några krav för efterföljande uppgifter i jobbet.
Kommandobegränsningar Den här aktiviteten körs med följande kommandobegränsningar: begränsad
Inställningsbara variabler Den här aktiviteten har behörighet att ange följande variabler: SSH_AGENT_PID, SSH_AUTH_SOCK, INSTALL_SSH_KEY_CONFIG_LOCATION INSTALL_SSH_KEY_KNOWN_HOSTS_LOCATION
Agentversion 2.182.1 eller senare
Uppgiftskategori Verktyg
Krav Beskrivning
Pipelinetyper YAML, klassisk version, klassisk version
Körs på Agent, DeploymentGroup
Krav Ingen
Funktioner Den här aktiviteten uppfyller inte några krav för efterföljande uppgifter i jobbet.
Kommandobegränsningar Valfri
Inställningsbara variabler Valfri
Agentversion 2.117.0 eller senare
Uppgiftskategori Verktyg