InstallSSHKey@0 - Installare l'attività chiave SSH v0
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.
# 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.
Input
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
.
Facoltativa. Specifica il contenuto della chiave SSH pubblica.
sshPublicKey
- Chiave pubblica SSH
string
. Obbligatorio.
Specifica il contenuto della chiave SSH pubblica.
sshPassphrase
- SSH Passphrase
string
.
Facoltativa. Specifica la passphrase per la chiave SSH, se presente.
sshKeySecureFile
- Chiave SSH
string
. Obbligatorio.
Specifica la chiave SSH caricata per Secure Files
l'installazione nell'agente.
addEntryToConfig
- Aggiungere la voce alla configurazione SSH
boolean
. Valore predefinito: false
.
Facoltativa. Aggiunge una voce correlata alla chiave installata nel file di configurazione SSH. Il file chiave sarà disponibile per tutte le attività successive.
configHostAlias
- Alias
string
. Obbligatorio quando addEntryToConfig = true
.
Specifica il nome della voce di configurazione SSH.
configHostname
- Nome host
string
. Obbligatorio quando addEntryToConfig = true
.
Specifica la proprietà nome host della voce di configurazione SSH.
configUser
- Utente
string
. Facoltativa. Usare quando addEntryToConfig = true
.
Specifica la proprietà nome utente della voce di configurazione SSH.
configPort
- Porta
string
. Facoltativa. Usare quando addEntryToConfig = true
.
Specifica la porta della voce di configurazione SSH.
hostName
- Voce host noti
string
. Obbligatorio.
Specifica la voce della chiave SSH per il file known_hosts.
Opzioni di controllo 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
No.
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.
Procedure consigliate e di utilizzo
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à. Impostare invece una variabile privata nella pipeline per il contenuto del mykey.pub
file. Chiamare quindi la variabile nella definizione della pipeline come $(myPubKey)
. Per la parte privata della chiave, usare la libreria file sicura 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, ci saranno problemi di accesso. Per GitHub, seguire la guida precedente. Per Azure DevOps Services, usare Aggiungi la chiave pubblica a 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 Advanced
sezione dell'attività 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.
Esempio
Configurazione di esempio con GitHub
Questa sezione descrive come usare un repository GitHub privato con YAML dall'interno di 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 di non usare uno.
ssh-keygen
crea le coppie di chiavi SSH e viene visualizzato il messaggio di esito positivo seguente:In Windows Esplora file 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 Add key.
Caricare la chiave privata in Azure DevOps:
Nel menu a sinistra di Azure DevOps selezionare Libreria pipeline>.
Selezionare Secure files+ Secure file ( Secure files>+ Secure file):
Selezionare Sfoglia e 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 usando SSH e non il protocollo HTTPS predefinito.
Requisiti
Requisito | Descrizione |
---|---|
Tipi di pipeline | YAML, build classica, versione classica |
Viene eseguito in | Agente, DeploymentGroup |
Richieste | Nessuno |
Capabilities | Questa attività non soddisfa le richieste per le attività successive nel processo. |
Restrizioni dei comandi | Questa attività viene eseguita usando le restrizioni di 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 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 |
Capabilities | Questa attività non soddisfa le richieste per le attività successive nel processo. |
Restrizioni dei comandi | Qualsiasi |
Variabili impostabili | Qualsiasi |
Versione agente | 2.117.0 o versione successiva |
Categoria attività | Utilità |