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
, configUser
och 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
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:
Generera ett nyckelpar som ska användas för att autentisera åtkomst från GitHub till Azure DevOps:
Kör följande kommando i GitBash:
ssh-keygen -t rsa
Ange ett namn för SSH-nyckelparet. I vårt exempel använder vi myKey.
(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.
ssh-keygen
skapar SSH-nyckelparen och följande meddelande visas:Kontrollera det nyligen skapade nyckelparet i Windows Utforskaren:
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
.Välj Lägg till distributionsnyckel.
I dialogrutan Lägg till ny anger du en rubrik och kopierar och klistrar sedan in SSH-nyckeln:
Välj Lägg till nyckel.
Ladda upp din privata nyckel till Azure DevOps:
I Azure DevOps går du till den vänstra menyn och väljer Pipelines-bibliotek>.
Välj Säkra filer>+ Säker fil:
Välj Bläddra och välj sedan din privata nyckel:
Å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:
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 |