SSH Remote Command

Descubra mais sobre o componente SSH Remote Command e saiba como utilizá-lo na Digibee Integration Platform.

O SSH Remote Command permite que se estabeleça uma conexão com um servidor SSH e que shell scripts sejam executados.

Parâmetros

Dê uma olhada nas opções de configuração do componente. Parâmetros suportados por expressões Double Braces estão marcados com (DB).

ParâmetroDescriçãoValor padrãoTipo de dado

Account (DB)

Conta a ser utilizada pelo componente. Contas suportadas: Basic, Kerberos e Private Key.

N/A

String

Username (DB)

Deve ser usado apenas quando o account type for Private Key.

N/A

String

Host (DB)

Nome do host ou endereço IP para realizar a conexão.

N/A

String

Port (DB)

Número da porta - geralmente 22.

22

Inteiro

Server Host Key

Especifica quaisquer algoritmos adicionais a serem suportados para a configuração de server host key. Cada algoritmo deve ser configurado separadamente.

N/A

String

Public Key Algorithms

Especifica quaisquer algoritmos adicionais a serem suportados para a configuração de algoritmos public key. Cada algoritmo deve ser configurado separadamente.

N/A

String

KEX Algorithms

Especifica quaisquer algoritmos adicionais a serem suportados para a configuração de algoritmos KEX (key exchange). Cada algoritmo deve ser configurado separadamente.

N/A

String

Custom Environment Variables

Se a opção estiver habilitada, você deverá informar as variáveis de ambiente de forma customizada no campo Environment Variables (ex: [{"key": "MYVAR", "value": "VAR_VALUE"}]).

N/A

String (JSON)

Environment Properties

Nome e valor das variáveis de ambiente a serem passadas para execução no servidor de SSH remoto. Essas variáveis devem ser cadastradas no sshd_config. Exemplo do cadastro no ssh_config: AcceptEnv MYVAR

N/A

String (JSON)

Command

Campo utilizado para especificar os comandos a serem executados no servidor SSH.

N/A

String

Ignore Output

Se a opção estiver habilitada, a execução do pipeline ignora as respostas exibidas no stdout ou stderr no servidor SSH. Caso contrário, serão exibidos os campos stdout e stderr na saída do componente.

False

Booleano

Stdout As File

Se a opção estiver habilitada, a resposta do resultado stdout será gravada em um arquivo. Caso contrário, será exibida como string na saída do componente.

False

Booleano

Stdout File Name

Nome do arquivo a ser criado com as informações do stdout.

N/A

String

Stderr As File

Se a opção estiver habilitada, a resposta do resultado stderr será gravada em um arquivo. Caso contrário, será exibida como string na saída do componente.

False

Booleano

Stderr File Name

Nome do arquivo a ser criado com as informações do stderr.

N/A

String

Connection Timeout

Tempo de expiração da conexão com o servidor (em milissegundos).

30000

Inteiro

Server Alive Interval

Tempo que o componente vai manter a conexão ativa (em milissegundos).

60000

Inteiro

Fail On Error

Se a opção estiver habilitada, a execução do pipeline com erro será interrompida; do contrário, a execução do pipeline continua, mas o resultado vai mostrar um valor falso para a propriedade "success".

False

Booleano

O conector SSH Remote Command usa uma biblioteca de implementação que desativou por padrão algoritmos específicos que foram considerados inseguros. Os parâmetros Server Host Key, Public Key Algorithms e KEX Algorithms estão disponíveis para quando for necessário ativar estes algoritmos para estabelecer uma conexão SSH. Embora seja possível usar essa configuração, não é recomendável usar algoritmos inseguros.

Fluxo de mensagens

Entrada

Não se espera nenhuma mensagem específica de entrada.

Saída

Ao executar um componente SFTP utilizando as operações download, upload ou move, a seguinte estrutura de JSON será gerada:

{
    "stdout": "xpto",
    "stderr": "xpto_err",
    "stdoutFileName": "stdout.txt",
    "stderrFileName": "stderr.txt",
    "success": "true"
}
  • stdout: resposta com sucesso da execução do script.

  • stderr: resposta com erros da execução do script.

  • stdoutFileName: caminho do arquivo salvo contendo as informações exibidas no stdout. Essa propriedade só será exibida caso a flag Stdout As File esteja habilitada.

  • stderrFileName: caminho do arquivo salvo contendo as informações exibidas no stderr. Essa propriedade só será exibida caso a flag Stderr As File esteja habilitada.

  • success: "true" se houve uma conexão e o script foi executado mesmo se retornar erros no stderr.

Saída com erro:

{
  "success": false,
  "message": "Could not execute the SSH remote command",
  "error": "java.net.SocketTimeoutException: connect timed out"
}
  • success: “false” quando a operação falha.

  • message: mensagem sobre o erro.

  • exception: informação sobre o tipo de erro ocorrido.

A manipulação de arquivos dentro de um pipeline ocorre de forma protegida. Os arquivos ficam disponíveis em diretório temporário que somente o pipeline sendo executado tem acesso.

Para entender melhor o fluxo das mensagens na Digibee Integration Platform, leia o artigo Processamento de mensagens.

SSH Remote Command em ação

Executando um script e recebendo as informações no JSON de resposta do componente

Hostname: <HOST>

Port: <PORT>

Command: echo $MYNAME && echo error output >&2

Environment Variables: [{"key":"MYNAME", "value":"TEST"}]

Stdout As File: desabilitado

Stderr As File: desabilitado

Fail On Error: desabilitado

Resultado:

{
    "stdout": "TEST",
    "stderr": "error output",
    "success": "true"
}

Executando um script e salvando as informações em arquivos

Hostname: <HOST>

Port: <PORT>

Command: echo $MYNAME && echo error output >&2

Environment Variables: [{"key":"MYNAME", "value":"TEST"}]

Stdout As File: habilitado

Stdout File Name: stdout.txt

Stderr As File: habilitado

Stderr File Name: stderr.txt

Fail On Error: desabilitado

Resultado:

{
    "stdoutFileName": "stdout.txt",
    "stderrFileName": "stderr.txt",
    "success": "true"
}

Atualizado