Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.
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.
sshPassphrase
-
Frase de contraseña SSH
string
.
Opcional. Especifica la frase de contraseña de la clave SSH, si la hay.
sshKeySecureFile
-
Clave SSH
string
. Obligatorio.
Especifica la clave SSH que se cargó Secure Files
para instalarla en el agente.
addEntryToConfig
-
Agregar entrada a la configuración 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 claves estará disponible para todas las tareas posteriores.
de alias de configHostAlias
-
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.
Opciones de control de tareas
Todas las tareas tienen opciones de control además de sus entradas de tarea. Para obtener más información, consulte 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 ya esté instalada la clave pública coincidente. Por ejemplo, puede conectarse a un repositorio de Git o a una máquina virtual de 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 de la definición de canalización como $(myPubKey)
. Para la parte secreta de la clave, use la biblioteca de archivos seguros de Azure Pipelines.
Para crear la tarea, use el siguiente ejemplo de una tarea de instalación de 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:
Su clave pública debe agregarse al repositorio\organización; de lo contrario, habrá problemas de acceso. Para GitHub, siga la guía anterior. En el caso de 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 utilizar la clave deseada al establecer una conexión SSH, puede utilizar la sección de la Advanced
InstallSSHKey
tarea para establecer los siguientes parámetros: addEntryToConfig
, configHostAlias
, configHostname
, configUser
, y configPort
.
Estos parámetros le 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 SSH original. Si inicialmente no había ningún archivo de configuración SSH, el host se elimina del agente.
Un 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
Documentos de GitHub relacionados.
Ejemplos
Ejemplo de configuración con GitHub
En esta sección se describe cómo usar un repositorio privado de GitHub con YAML desde Azure Pipelines.
Si tienes un repositorio que no quieres exponer a la comunidad de código abierto, una práctica común 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 de GitHub a Azure DevOps:
En GitBash, ejecute el siguiente comando:
ssh-keygen -t rsa
Introduzca un nombre para el par de claves SSH. En nuestro ejemplo, usamos myKey.
(Opcional) Puede introducir una frase de contraseña para cifrar su clave privada. Este paso es opcional. Usar una frase de contraseña es más seguro que no usarla.
ssh-keygen
crea los pares de claves SSH y aparece el siguiente mensaje de éxito:En el Explorador de archivos de Windows, 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 URL en su navegador:
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, a continuación, copie y pegue la clave SSH:
Seleccione Agregar clave.
Cargue su clave privada en Azure DevOps:
En Azure DevOps, en el menú de la izquierda, seleccioneBiblioteca de >canalizaciones.
Seleccione Archivos> seguros+ Archivo seguro:
Seleccione Examinar y, a continuación, seleccione su clave privada:
Recupere su "Entrada de hosts conocidos". En GitBash, escriba el siguiente comando:
ssh-keyscan github.com
Su "Entrada de hosts conocidos" es el valor mostrado que no comienza con # en los resultados de GitBash:
Cree una canalización de YAML.
Para crear una canalización de 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 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 |
demandas | Ninguno |
Capacidades | Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo. |
restricciones de comandos | Esta tarea se ejecuta con las restricciones de comandos siguientes: restringido |
variables settable | 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 tarea | Utilidad |
Requisito | Descripción |
---|---|
Tipos de canalización | YAML, compilación clásica, versión clásica |
Se ejecuta en | Agente, DeploymentGroup |
demandas | Ninguno |
Capacidades | Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo. |
restricciones de comandos | Cualquiera |
variables settable | Cualquiera |
Versión del agente | 2.117.0 o superior |
Categoría de tarea | Utilidad |