InstallSSHKey@0: tarea Instalar la clave SSH v0
Use esta tarea en una canalización para instalar una clave SSH antes de un paso de compilación o versión.
Sintaxis
# 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.
Entradas
knownHostsEntry
- Entrada de hosts conocidos
Alias de entrada: hostName
. string
. Obligatorio.
Especifica la entrada de clave SSH para el archivo known_hosts.
sshPublicKey
- Clave pública SSH
string
.
Opcional. Especifica el contenido de la clave SSH pública.
sshPublicKey
- Clave pública SSH
string
. Obligatorio.
Especifica el contenido de la clave SSH pública.
sshPassphrase
- Frase de contraseña SSH
string
.
Opcional. Especifica la frase de contraseña para la clave SSH, si existe.
sshKeySecureFile
- Clave SSH
string
. Obligatorio.
Especifica la clave SSH que se cargó para Secure Files
instalar en el agente.
addEntryToConfig
- Adición de una entrada a la configuración de SSH
boolean
. Valor predeterminado: false
.
Opcional. Agrega una entrada relacionada con la clave que se instaló en el archivo de configuración ssh. El archivo de clave estará disponible para todas las tareas posteriores.
configHostAlias
- Alias
string
. Obligatorio cuando addEntryToConfig = true
.
Especifica el nombre de la entrada de configuración ssh.
configHostname
- Nombre de host
string
. Obligatorio cuando addEntryToConfig = true
.
Especifica la propiedad de nombre de host de la entrada de configuración ssh.
configUser
- Usuario
string
. Opcional. Use cuando addEntryToConfig = true
.
Especifica la propiedad de nombre de usuario de la entrada de configuración ssh.
configPort
- Puerto
string
. Opcional. Use cuando addEntryToConfig = true
.
Especifica el puerto de la entrada de configuración ssh.
hostName
- Entrada de hosts conocidos
string
. Obligatorio.
Especifica la entrada de clave SSH para el archivo known_hosts.
Opciones de control de tareas
Todas las tareas tienen opciones de control además de sus entradas de tareas. Para obtener más información, vea Opciones de control y propiedades de tareas comunes.
Variables de salida
Ninguno.
Observaciones
Use esta tarea en una canalización para instalar una clave SSH antes de un paso de compilación o versión.
Nota
Esta tarea requería Git Bash para Windows en el agente.
Uso y procedimientos recomendados
Si instala una clave SSH en los grupos hospedados, en pasos posteriores de la canalización, puede conectarse a un sistema remoto en el que la clave pública coincidente ya está implementada. Por ejemplo, puede conectarse a un repositorio de Git o a una máquina virtual en Azure.
Se recomienda no pasar la clave pública como texto sin formato a la configuración de la tarea. En su lugar, establezca una variable secreta en la canalización para el contenido del mykey.pub
archivo. A continuación, llame a la variable en la definición de canalización como $(myPubKey)
. Para la parte secreta de la clave, use la biblioteca de archivos seguros en Azure Pipelines.
Para crear la tarea, use el ejemplo siguiente de una tarea Instalar clave SSH bien configurada:
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 clave pública debe agregarse al repositorio\organización; de lo contrario, habrá problemas de acceso. Para GitHub, siga la guía anterior. Para Azure DevOps Services, use Agregar la clave pública a Azure DevOps Services/TFS.
Instalación de varias claves SSH en el mismo trabajo de canalización
Cuando se usa más de una clave en el mismo trabajo de canalización, la primera se usa de forma predeterminada. Para poder usar la clave deseada al establecer una conexión SSH, puede usar la Advanced
sección de la InstallSSHKey
tarea para establecer los parámetros siguientes: addEntryToConfig
, configHostAlias
, configHostname
, configUser
y configPort
.
Estos parámetros permiten agregar un host al archivo de configuración ssh (por ejemplo, /root/.ssh/config
para Linux) para usarlo en scripts personalizados a través de un alias.
Una vez completada la compilación, la tarea intentará restaurar el archivo de configuración DE SSH original. Si no hay ningún archivo de configuración SSH inicialmente, el host se quita del agente.
Ejemplo de instalación de varias claves SSH. El caso con varios repositorios de GitHub y su propia clave para cada uno:
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
Documentación relacionada de GitHub.
Ejemplos
Configuración de ejemplo con GitHub
En esta sección se describe cómo usar un repositorio privado de GitHub con YAML desde Azure Pipelines.
Si tiene un repositorio que no desea exponer a la comunidad de código abierto, una práctica habitual es hacer que el repositorio sea privado. Sin embargo, una herramienta de CI/CD como Azure DevOps necesita acceso al repositorio si desea usar la herramienta para administrar el repositorio. Para conceder acceso a Azure DevOps, es posible que necesite una clave SSH para autenticar el acceso a GitHub.
Estos son los pasos para usar una clave SSH para autenticar el acceso a GitHub:
Genere un par de claves que se usará para autenticar el acceso desde GitHub a Azure DevOps:
En GitBash, ejecute el siguiente comando:
ssh-keygen -t rsa
Escriba un nombre para el par de claves SSH. En nuestro ejemplo, usamos myKey.
(Opcional) Puede escribir una frase de contraseña para cifrar la clave privada. Este paso es opcional. El uso de una frase de contraseña es más seguro que no usar una.
ssh-keygen
crea los pares de claves SSH y aparece el siguiente mensaje de operación correcta:En Windows Explorador de archivos, compruebe el par de claves recién creado:
Agregue la clave pública al repositorio de GitHub. (La clave pública termina en ".pub"). Para ello, vaya a la siguiente dirección URL en el explorador:
https://github.com/(organization-name)/(repository-name)/settings/keys
.Seleccione Agregar clave de implementación.
En el cuadro de diálogo Agregar nuevo , escriba un título y copie y pegue la clave SSH:
Seleccione Agregar clave.
Cargue la clave privada en Azure DevOps:
En Azure DevOps, en el menú izquierdo, seleccione Biblioteca de canalizaciones>.
Seleccione Archivos seguros+ Archivo> seguro:
Seleccione Examinar y, a continuación, seleccione la clave privada:
Recupere la "Entrada de hosts conocidos". En GitBash, escriba el siguiente comando:
ssh-keyscan github.com
La "Entrada de hosts conocidos" es el valor mostrado que no comienza por # en los resultados de GitBash:
Cree una canalización YAML.
Para crear una canalización YAML, en la definición de YAML, agregue la siguiente tarea:
- 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}
Las claves SSH ahora están instaladas y puede continuar con el script para conectarse mediante SSH y no con el HTTPS predeterminado.
Requisitos
Requisito | Descripción |
---|---|
Tipos de canalización | YAML, compilación clásica, versión clásica |
Se ejecuta en | Agente, DeploymentGroup |
Peticiones | None |
Capabilities | Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo. |
Restricciones de comandos | Esta tarea se ejecuta con las siguientes restricciones de comandos: restringido |
Variables que se pueden establecer | Esta tarea tiene permiso para establecer las siguientes variables: SSH_AGENT_PID, SSH_AUTH_SOCK, INSTALL_SSH_KEY_CONFIG_LOCATION, INSTALL_SSH_KEY_KNOWN_HOSTS_LOCATION |
Versión del agente | 2.182.1 o superior |
Categoría de la tarea: | Utilidad |
Requisito | Descripción |
---|---|
Tipos de canalización | YAML, compilación clásica, versión clásica |
Se ejecuta en | Agente, DeploymentGroup |
Peticiones | None |
Capabilities | Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo. |
Restricciones de comandos | Any |
Variables que se pueden establecer | Any |
Versión del agente | 2.117.0 o superior |
Categoría de la tarea: | Utilidad |