Tarea de implementación de SSH

Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 | TFS 2017

Use esta tarea para ejecutar comandos de shell o un script en un equipo remoto mediante SSH. Esta tarea le permite conectarse a un equipo remoto mediante SSH y ejecutar comandos o un script.

Nota:

En Microsoft Team Foundation Server (TFS) 2018 y versiones anteriores, las canalizaciones de compilación y versión se denominan definiciones, las ejecuciones se denominan compilaciones, las conexiones de servicio se denominan puntos de conexión de servicio, las fases se denominan entornos y los trabajos se denominan fases.

Requisitos previos

  • La tarea admite el uso de un par de claves SSH para conectarse a las máquinas remotas.
  • La clave pública debe instalarse previamente o copiarse en las máquinas remotas.

Fragmento de código YAML

# SSH
# Run shell commands or a script on a remote machine using SSH
- task: SSH@0
  inputs:
    sshEndpoint: 
    #runOptions: 'commands' # Options: commands, script, inline
    #commands: # Required when runOptions == Commands
    #scriptPath: # Required when runOptions == Script
    #inline: # Required when runOptions == Inline
    #interpreterCommand: # Used when runOptions == Inline
    #args: # Optional
    #failOnStdErr: true # Optional

Argumentos

Argumento Descripción
Punto de conexión SSH Nombre de una conexión de servicio SSH que contiene los detalles de conexión de la máquina remota. El nombre de host o la dirección IP de la máquina remota, el número de puerto y el nombre de usuario son necesarios para crear una conexión de servicio SSH.
- La clave privada y la frase de contraseña deben especificarse para la autenticación.
- Se puede usar una contraseña para autenticarse en máquinas Linux remotas, pero esto no es compatible con macOS o Windows remoto.
Ejecutar Elija ejecutar comandos de shell o un script de shell en el equipo remoto.
Comandos Comandos de shell que se ejecutarán en el equipo remoto. Este parámetro solo está disponible cuando se selecciona Comandos para la opción Ejecutar. Escriba cada comando junto con sus argumentos en una nueva línea del cuadro de texto de varias líneas. Para ejecutar varios comandos juntos, escriba en la misma línea separados por punto y coma. Ejemplo: cd /home/user/myFolder;build

NOTA:Cada comando se ejecuta en un proceso independiente. Si desea ejecutar una serie de comandos que son interdependientes (por ejemplo, cambiar la carpeta actual antes de ejecutar un comando), use la opción Script en línea en su lugar.
Ruta de acceso del script de shell Ruta de acceso al archivo de script de shell que se ejecutará en el equipo remoto. Este parámetro solo está disponible cuando el script de Shell está seleccionado para la opción Ejecutar.
Comando de intérprete Ruta de acceso al intérprete de comandos usado para ejecutar el script. Se usa cuando la opción Ejecutar = En línea. Agrega una línea de guión al principio del script. Solo es relevante para UNIX sistemas operativos de tipo " Use una cadena vacía para Windows hosts remotos basados en clústeres. Más información sobre she hashtag (#!)
Argumentos Argumentos que se pasan al script de shell. Este parámetro solo está disponible cuando el script de Shell está seleccionado para la opción Ejecutar.
Avanzado: error en STDERR Si esta opción está seleccionada (valor predeterminado), se producirá un error en la compilación si los comandos remotos o el script escriben en STDERR.
Opciones de control Consulte Opciones de control.

Algoritmos admitidos

Algoritmos de par de claves

  • RSA
  • DSA

Algoritmos de cifrado

  • aes256-cbc
  • aes192-cbc
  • aes128-cbc
  • fishfish-cbc
  • 3des-cbc
  • arcfour256
  • arcfour128
  • cast128-cbc
  • arcfour

Para OpenSSL v1.0.1 y posteriores (en el agente):

  • aes256-ctr
  • aes192-ctr
  • aes128-ctr

Para OpenSSL v1.0.1 y posteriores, NodeJS v0.11.12 y posteriores (en el agente):

  • aes128-gcm
  • aes128-gcm@openssh.com
  • aes256-gcm
  • aes256-gcm@openssh.com

Vea también

Código Abierto

Esta tarea es de código abierto en GitHub. Los comentarios y las contribuciones son bienvenidos.

Preguntas más frecuentes

¿Qué formatos clave se admiten para las tareas SSH?

Las Azure Pipelines SSH usan el paquete Node.js ssh2 para las conexiones SSH. Asegúrese de que usa la versión más reciente de las tareas SSH. Es posible que las versiones anteriores no admitan el formato de clave OpenSSH.

Si se produce un error de "Formato de clave no compatible", es posible que tenga que agregar la marca al comando para que la clave tenga -m PEMssh-keygen un formato admitido.

¿Necesito un agente?

Necesita al menos un agente para ejecutar la compilación o versión.

Tengo problemas. ¿Cómo puedo solucionarlos?

Vea Solución de problemas de compilación y versión.

No se puede seleccionar un grupo de agentes predeterminado y no se puede poner en cola la compilación o versión. ¿Cómo puedo corregirlo?

Vea Grupos de agentes.

La tarea de envío de cambios de NuGet genera el error siguiente: "Error: no se puede obtener el certificado del emisor local". ¿Cómo lo puedo corregir?

Esto se puede corregir si se añade un certificado raíz de confianza. Puede agregar la variable de entorno NODE_EXTRA_CA_CERTS=file al agente de compilación, o bien la variable de tarea NODE.EXTRA.CA.CERTS=file en la canalización. Vea la documentación de Node.js para obtener más detalles sobre esta variable. Consulte Establecimiento de variables en una canalización para obtener instrucciones sobre cómo establecer una variable en la canalización.

Utilizo TFS en el entorno local y no veo algunas de estas características. ¿Por qué no?

Algunas de estas características solo están disponibles en Azure Pipelines y todavía no lo están en el entorno local. Algunas características están disponibles en el entorno local si ha actualizado a la versión más reciente de TFS.