Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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.
Ingångar
knownHostsEntry
-
kända värdinmatning
Indataalias: hostName.
string. Obligatoriskt.
Anger SSH-nyckelposten för known_hosts-filen.
sshPublicKey
-
offentlig SSH-nyckel
string.
Valfritt. Anger innehållet i den offentliga SSH-nyckeln.
sshPassphrase
-
SSH-lösenfras
string.
Valfritt. Anger lösenfrasen för SSH-nyckeln, om någon.
sshKeySecureFile
-
SSH-nyckel
string. Obligatoriskt.
Anger den SSH-nyckel som laddades upp till Secure Files som ska installeras på agenten.
addEntryToConfig
-
Lägg till post i SSH-konfigurationen
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ändare
string. Valfritt. Använd när addEntryToConfig = true.
Anger användarnamnsegenskapen för SSH-konfigurationsposten.
configPort
-
port
string. Valfritt. Använd när addEntryToConfig = true.
Anger porten för SSH-konfigurationsposten.
Kontrollalternativ för aktivitet
Alla aktiviteter har kontrollalternativ utöver sina aktivitetsindata. Mer information finns i Kontrollalternativ och vanliga uppgiftsegenskaper.
Utdatavariabler
Ingen.
Anmärkningar
Använd den här uppgiften i en pipeline för att installera en SSH-nyckel före ett bygg- eller versionssteg.
Anmärkning
Den här uppgiften krävde Git Bash för Windows på agenten.
Användning och metodtips
Om du installerar en SSH-nyckel i värdbaserade pooleri senare steg i pipelinen kan du ansluta till ett fjärrsystem där den matchande offentliga nyckeln redan finns. 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. I stället ange en hemlig variabel i pipelinen för innehållet i din mykey.pub-fil. Anropa sedan variabeln i pipelinedefinitionen som $(myPubKey). För den hemliga delen av nyckeln använder du secure file library i Azure Pipelines.
Om du vill skapa din uppgift använder du följande exempel på en välkonfigurerad installera SSH-nyckeluppgift:
steps:
- task: InstallSSHKey@0
displayName: 'Install an SSH key'
inputs:
knownHostsEntry: 'SHA256:1Hyr55tsxGifESBMc0s+2NtutnR/4+LOkVwrOGrIp8U johndoe@contoso'
sshPublicKey: '$(myPubKey)'
sshKeySecureFile: 'id_rsa'
Anmärkning
Den offentliga nyckeln ska läggas till i lagringsplatsen/organisationen. annars blir 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 avsnittet Advanced i InstallSSHKey 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 kunna använda den i anpassade skript via ett alias.
När bygget är klart 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
Exempel på konfiguration 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 åtkomsten till GitHub.
Här följer stegen för att använda en SSH-nyckel för att autentisera åtkomsten 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 rsaAnge 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 steget är valfritt. Det är säkrare att använda en lösenfras än att inte använda en.
ssh-keygenskapar SSH-nyckelparen och följande meddelande visas:
I Utforskaren i Windows kontrollerar du det nyligen skapade nyckelparet:
Lägg till den offentliga nyckeln till GitHub-lagringsplatsen. (Den offentliga nyckeln slutar i ".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>Library.
Välj Säkra filer>+ Säker fil:
Välj Bläddraoch välj sedan din privata nyckel:
Återställ posten "Kända värdar". I GitBash anger du följande kommando:
ssh-keyscan github.comPosten "Kända värdar" är det visade värdet 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 |
| kräver | Ingen |
| funktioner | Den här aktiviteten uppfyller inte några krav på efterföljande uppgifter i jobbet. |
| Kommandobegränsningar | Den här aktiviteten körs med hjälp av följande kommandobegränsningar: begränsad |
| variabler som kan | Den här uppgiften 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 |
| Aktivitetskategori | Nytta |
| Krav | Beskrivning |
|---|---|
| Pipelinetyper | YAML, klassisk version, klassisk version |
| Körs på | Agent, DeploymentGroup |
| kräver | Ingen |
| funktioner | Den här aktiviteten uppfyller inte några krav på efterföljande uppgifter i jobbet. |
| Kommandobegränsningar | Vilken som helst |
| variabler som kan | Vilken som helst |
| Agentversion | 2.117.0 eller senare |
| Aktivitetskategori | Nytta |