Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Usare questa attività in una pipeline per installare una chiave SSH prima di un passaggio di compilazione o versione.
Sintassi
# 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.
Ingressi dati
knownHostsEntry
-
voce host noti
Alias di input: hostName
.
string
. Obbligatorio.
Specifica la voce della chiave SSH per il file known_hosts.
sshPublicKey
-
chiave pubblica SSH
string
.
Opzionale. Specifica il contenuto della chiave SSH pubblica.
sshPassphrase
-
passphrase SSH
string
.
Opzionale. Specifica la passphrase per la chiave SSH, se presente.
sshKeySecureFile
-
chiave SSH
string
. Obbligatorio.
Specifica la chiave SSH caricata in Secure Files
da installare nell'agente.
addEntryToConfig
-
Aggiungi voce al di configurazione SSH
boolean
. Valore predefinito: false
Opzionale. Aggiunge una voce correlata alla chiave installata nel file di configurazione SSH. Il file di chiave sarà disponibile per tutte le attività successive.
alias configHostAlias
-
string
. Obbligatorio quando addEntryToConfig = true
.
Specifica il nome della voce di configurazione SSH.
configHostname
-
nome host
string
. Obbligatorio quando addEntryToConfig = true
.
Specifica la proprietà del nome host della voce di configurazione SSH.
configUser
-
utente
string
. Opzionale. Usare quando addEntryToConfig = true
.
Specifica la proprietà nome utente della voce di configurazione SSH.
configPort
-
porta
string
. Opzionale. Usare quando addEntryToConfig = true
.
Specifica la porta della voce di configurazione SSH.
Opzioni di controllo delle attività
Tutte le attività dispongono di opzioni di controllo oltre ai relativi input attività. Per altre informazioni, vedere Opzioni di controllo e proprietà comuni delle attività.
Variabili di output
Nessuno.
Osservazioni:
Usare questa attività in una pipeline per installare una chiave SSH prima di un passaggio di compilazione o versione.
Nota
Questa attività richiede Git Bash per Windows nell'agente.
Utilizzo e procedure consigliate
Se si installa una chiave SSH nei pool ospitati , nei passaggi successivi della pipeline è possibile connettersi a un sistema remoto in cui è già presente la chiave pubblica corrispondente. Ad esempio, è possibile connettersi a un repository Git o a una macchina virtuale in Azure.
È consigliabile non passare la chiave pubblica come testo normale alla configurazione dell'attività. Al contrario, impostare una variabile privata nella pipeline per il contenuto del file mykey.pub
. Chiamare quindi la variabile nella definizione della pipeline come $(myPubKey)
. Per la parte privata della chiave, usare libreria di file protetti in Azure Pipelines.
Per creare l'attività, usare l'esempio seguente di un'attività Installa chiave SSH ben configurata:
steps:
- task: InstallSSHKey@0
displayName: 'Install an SSH key'
inputs:
knownHostsEntry: 'SHA256:1Hyr55tsxGifESBMc0s+2NtutnR/4+LOkVwrOGrIp8U johndoe@contoso'
sshPublicKey: '$(myPubKey)'
sshKeySecureFile: 'id_rsa'
Nota
La chiave pubblica deve essere aggiunta al repository\organizzazione; in caso contrario, si verificheranno problemi di accesso. Per GitHub, seguire la guida precedente. Per Azure DevOps Services, usare Aggiungere la chiave pubblica ad Azure DevOps Services/TFS.
Installazione di più chiavi SSH nello stesso processo della pipeline
Quando si usano più chiavi nello stesso processo della pipeline, la prima viene usata per impostazione predefinita. Per poter usare la chiave desiderata quando si stabilisce una connessione SSH, è possibile usare la sezione Advanced
dell'attività di InstallSSHKey
per impostare i parametri seguenti: addEntryToConfig
, configHostAlias
, configHostname
, configUser
e configPort
.
Questi parametri consentono di aggiungere un host al file di configurazione SSH (ad esempio, /root/.ssh/config
per Linux) per usarlo negli script personalizzati tramite un alias.
Al termine della compilazione, l'attività tenterà di ripristinare il file di configurazione SSH originale. Se inizialmente non è presente alcun file di configurazione SSH, l'host viene rimosso dall'agente.
Esempio di installazione di più chiavi SSH. Il caso con diversi repository GitHub e la propria chiave per ognuno di essi:
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
documentazione di GitHub correlata.
Esempi
Configurazione di esempio con GitHub
Questa sezione descrive come usare un repository GitHub privato con YAML da Azure Pipelines.
Se si dispone di un repository che non si vuole esporre alla community open source, una procedura comune consiste nel rendere privato il repository. Tuttavia, uno strumento CI/CD come Azure DevOps deve accedere al repository se si vuole usare lo strumento per gestire il repository. Per concedere l'accesso ad Azure DevOps, potrebbe essere necessaria una chiave SSH per autenticare l'accesso a GitHub.
Ecco i passaggi per usare una chiave SSH per autenticare l'accesso a GitHub:
Generare una coppia di chiavi da usare per autenticare l'accesso da GitHub ad Azure DevOps:
In GitBash eseguire il comando seguente:
ssh-keygen -t rsa
Immettere un nome per la coppia di chiavi SSH. Nell'esempio viene usato myKey.
(Facoltativo) È possibile immettere una passphrase per crittografare la chiave privata. Questo passaggio è facoltativo. L'uso di una passphrase è più sicuro rispetto all'uso di uno.
ssh-keygen
crea le coppie di chiavi SSH e viene visualizzato il messaggio di esito positivo seguente:In Esplora file di Windows controllare la coppia di chiavi appena creata:
Aggiungere la chiave pubblica al repository GitHub. (La chiave pubblica termina in ".pub"). A tale scopo, passare all'URL seguente nel browser:
https://github.com/(organization-name)/(repository-name)/settings/keys
.Selezionare Add deploy key.
Nella finestra di dialogo Aggiungi nuovo immettere un titolo e quindi copiare e incollare la chiave SSH:
Selezionare Aggiungi chiave.
Caricare la chiave privata in Azure DevOps:
Nel menu a sinistra in Azure DevOps selezionare Pipeline>Library.
Selezionare Proteggere i file>+ Secure file:
Selezionare Sfogliae quindi selezionare la chiave privata:
Recuperare la voce "Host noti". In GitBash immettere il comando seguente:
ssh-keyscan github.com
La voce "Host noti" è il valore visualizzato che non inizia con # nei risultati di GitBash:
Creare una pipeline YAML.
Per creare una pipeline YAML, nella definizione YAML aggiungere l'attività seguente:
- 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}
Le chiavi SSH sono ora installate ed è possibile procedere con lo script per connettersi tramite SSH e non con HTTPS predefinito.
Requisiti
Requisito | Descrizione |
---|---|
Tipi di pipeline | YAML, build classica, versione classica |
Viene eseguito in | Agente, DeploymentGroup |
richieste | Nessuno |
funzionalità di | Questa attività non soddisfa alcuna richiesta di attività successive nel processo. |
restrizioni dei comandi | Questa attività viene eseguita usando le restrizioni del comando seguenti: con restrizioni |
variabili impostabili | Questa attività dispone dell'autorizzazione per impostare le variabili seguenti: SSH_AGENT_PID, SSH_AUTH_SOCK, INSTALL_SSH_KEY_CONFIG_LOCATION INSTALL_SSH_KEY_KNOWN_HOSTS_LOCATION |
Versione dell'agente | 2.182.1 o versione successiva |
Categoria attività | Utilità |
Requisito | Descrizione |
---|---|
Tipi di pipeline | YAML, build classica, versione classica |
Viene eseguito in | Agente, DeploymentGroup |
richieste | Nessuno |
funzionalità di | Questa attività non soddisfa alcuna richiesta di attività successive nel processo. |
restrizioni dei comandi | Qualunque |
variabili impostabili | Qualunque |
Versione dell'agente | 2.117.0 o versione successiva |
Categoria attività | Utilità |