Todos os produtos
Search
Central de documentação

Elastic Compute Service:Connect to an instance with a temporary key pair with Session Manager CLI

Última atualização: Sep 22, 2026

Registre uma chave pública temporária de 60 segundos com o ali-instance-cli e conecte-se a uma instância ECS usando a chave privada em vez de senha.

Chaves públicas temporárias

As chaves públicas temporárias permitem a conexão com instâncias via SSH sem a necessidade de configurar pares de chaves nelas. A cada conexão, registre uma chave pública temporária válida por 60 segundos e use a chave privada correspondente em vez de senha.

Nota

O servidor do Cloud Assistant armazena as chaves públicas temporárias.

Pré-requisitos

Ative o serviço do Session Manager

Ative o serviço do Session Manager para sua conta Alibaba Cloud no console:

  1. Acesse o ECS console - Instances.

  2. Na barra de navegação superior, selecione a região e o grupo de recursos da instância.

  3. Na página Instance, localize a instância de destino e clique em Connect na coluna Actions.

  4. Clique em Show Other Logon Methods. Localize o Session Manager. Ative a chave ao lado de Session Management closed. Em seguida, siga as instruções na tela para ativar o serviço.

    image

    image

Verifique se a instância está no status Running

O Session Manager exige que a instância esteja no status Running.

Console

Visualize o status da instância na página Instance no console do ECS.

Consulte View instance information .

No painel de navegação à esquerda, escolha Instances & Images > Instances.

Na lista de instâncias, confirme se o status de SessionManager-example é Running.

Alibaba Cloud CLI

Caso tenha o Alibaba Cloud CLI configurado, execute o seguinte comando para consultar o status da instância. Para obter detalhes sobre os parâmetros, consulte DescribeInstanceStatus.

Este tópico usa como exemplo uma instância com o ID i-bp1****** na região China (Hangzhou).
aliyun ecs DescribeInstanceStatus --region cn-hangzhou --RegionId 'cn-hangzhou' --InstanceId.1 'i-bp1******'

Se o Status for Running, a instância está em execução.

{
  "TotalCount": 1,
  "RequestId": "A413****-****-****-****-****611B",
  "PageSize": 1,
  "PageNumber": 1,
  "InstanceStatuses": {
    "InstanceStatus": [
      {
        "Status": "Running",
        "InstanceId": "i-bp1******"
      }
    ]
  }
}

Também é possível usar DescribeInstances para consultar o status da instância.

API

Consulte DescribeInstanceStatus ou DescribeInstances.

Verifique se o **Cloud Assistant Agent** está instalado

O Session Manager requer o Cloud Assistant. Use um dos métodos a seguir para verificar se o Cloud Assistant Agent está instalado na instância.

As instâncias ECS criadas a partir de imagens públicas oficiais após 1º de dezembro de 2017 têm o Cloud Assistant Agent pré-instalado . Para instâncias criadas antes dessa data ou a partir de imagens personalizadas enviadas, install Cloud Assistant Agent manualmente.

Console

O Session Manager depende do Cloud Assistant. Instale o Cloud Assistant Agent na instância e verifique seu status na página do Cloud Assistant no console do ECS.

O Cloud Assistant Agent vem pré-instalado em instâncias ECS criadas a partir de imagens públicas do Alibaba Cloud após 1º de dezembro de 2017. Para instâncias anteriores, instale manualmente o Cloud Assistant Agent . Consulte Install the Cloud Assistant Agent .

No painel de navegação à esquerda do console do ECS, em O&M, clique em Cloud Assistant.

Confirme se a coluna Cloud Assistant Status da instância de destino exibe Normal.

Consulte Check Cloud Assistant status and troubleshoot exceptions.

Alibaba Cloud CLI

Caso tenha o Alibaba Cloud CLI configurado, execute o seguinte comando para verificar a instalação do Cloud Assistant Agent e o suporte ao Session Manager. Para obter detalhes sobre os parâmetros, consulte DescribeCloudAssistantStatus.

Este tópico usa como exemplo uma instância com o ID i-bp1****** na região China (Hangzhou).
aliyun ecs DescribeCloudAssistantStatus --region cn-hangzhou --RegionId 'cn-hangzhou' --InstanceId.1 'i-bp1******'

Se CloudAssistantStatus for true e SupportSessionManager for true, a instância terá suporte a conexões do Session Manager.

{
  "TotalCount": 1,
  "PageSize": 1,
  "RequestId": "DB34****-****-****-****-****A749",
  "NextToken": "",
  "PageNumber": 1,
  "InstanceCloudAssistantStatusSet": {
    "InstanceCloudAssistantStatus": [
      {
        "CloudAssistantVersion": "2.2.3.857",
        "SupportSessionManager": true,
        "InstanceId": "i-bp1******",
        "InvocationCount": 4,
        "OSType": "Linux",
        "CloudAssistantStatus": "true",
        "LastHeartbeatTime": "2024-12-10T02:38:04Z",
        "LastInvokedTime": "2024-12-08T16:02:45Z",
        "ActiveTaskCount": 0
      }
    ]
  }
}

API

Consulte DescribeCloudAssistantStatus.

Prepare as credenciais de um usuário RAM para o Session Manager

Ao usar o ali-instance-cli, especifique o par de AccessKey e o token do Security Token Service (STS) do usuário RAM. Ao se conectar a uma instância com o Session Manager, o sistema verifica se o usuário RAM detentor das credenciais também possui a permissão ecs:StartTerminalSession.

Ao configurar uma política personalizada, defina o parâmetro Resource para especificar as instâncias ECS às quais um usuário RAM pode se conectar com o Session Manager. Exemplo de política:

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "ecs:StartTerminalSession",
      "Resource": "*"
    }
  ]
}

Para obter informações sobre os parâmetros CredentialsURI e STS Token, consulte Create an AccessKey pair e STS overview.

Para obter informações sobre como conceder permissões a um usuário RAM, consulte Manage RAM user permissions.

1. Instale e configure o Session Manager CLI

Nota

Pule esta etapa caso já tenha instalado e configurado o Session Manager CLI.

1,1 Instale

Instale o Session Manager CLI (ali-instance-cli) no seu computador. O método de instalação varia de acordo com o sistema operacional.

Windows

Clique para baixar o ali-instance-cli para Windows e salve-o em uma pasta local.

Este tópico usa a pasta C:\Users\test como exemplo.

macOS

No terminal do macOS, baixe o ali-instance-cli para macOS:

curl -O https://aliyun-client-assist.oss-accelerate.aliyuncs.com/session-manager/mac/ali-instance-cli

Conceda permissões de execução:

chmod a+x ali-instance-cli

Linux

Instale o ali-instance-cli para Linux:

x86 architecture

curl -O https://aliyun-client-assist.oss-accelerate.aliyuncs.com/session-manager/linux/ali-instance-cli

arm architecture

curl -O https://aliyun-client-assist.oss-cn-beijing.aliyuncs.com/session-manager/linux_arm/ali-instance-cli

Conceda permissões de execução:

chmod a+x ali-instance-cli

1,2 Configure

Para se conectar a uma instância ECS com o ali-instance-cli, configure as credenciais de identidade, como um AccessKey. Consulte Prepare the credentials of a RAM user for Session Manager.

Windows

  1. Clique em Start > Run, insira cmd e pressione a tecla Enter para abrir uma janela do prompt de comando.

  2. Acesse o diretório do ali-instance-cli.exe. Este exemplo usa C:\Users\test.

    cd C:\Users\test
  3. Configure as credenciais usando um dos métodos a seguir:

    AccessKey

    Configure o AccessKey ID, o AccessKey secret e o Region ID conforme solicitado:

    ali-instance-cli.exe configure --mode AK

    STS Token

    Conclua a configuração:

    ali-instance-cli.exe configure set --mode StsToken --region "<region>" --access-key-id "<ak>"  --access-key-secret "<sk>"   --sts-token "<sts_token>"

    Substitua <region>, <ak>, <sk> e <sts_token> pelos valores reais do seu region ID, AccessKey ID, AccessKey secret e STS token.

    CredentialsURI

    Insira o Credentials URI e o Region ID conforme solicitado:

    ali-instance-cli.exe configure --mode=CredentialsURI

    A saída a seguir indica uma configuração bem-sucedida.

    image

macOS/Linux

  1. Acesse o diretório do ali-instance-cli. Este exemplo usa o diretório home ~.

    cd ~
  2. Configure as credenciais:

    AccessKey

    Configure o AccessKey ID, o AccessKey secret e o Region ID conforme solicitado:

    ./ali-instance-cli configure --mode AK

    STS Token

    Conclua a configuração:

    ./ali-instance-cli configure set --mode StsToken --region "<region>" --access-key-id "<ak>"  --access-key-secret "<sk>"   --sts-token "<sts_token>"

    Substitua <region>, <ak>, <sk> e <sts_token> pelos valores reais do seu region ID, AccessKey ID, AccessKey secret e STS token.

    CredentialsURI

    Configure o Credentials URI e o Region ID conforme solicitado:

    ./ali-instance-cli configure --mode=CredentialsURI

    A saída a seguir indica uma configuração bem-sucedida.

    image

2. Registre uma chave pública temporária na instância

2.1 Obtenha o ID da instância

Obtenha o ID da instância de destino.

Use the ECS console

  1. Acesse o ECS console - Instances.

  2. Na barra de navegação superior, selecione a região e o grupo de recursos que deseja gerenciar.

  3. Na página Instance, localize a instância à qual deseja se conectar e clique no ID da instância.

image

Use Alibaba Cloud CLI

Caso tenha configurado o Alibaba Cloud CLI, execute um comando para chamar a operação DescribeInstances e consultar o ID da instância à qual deseja se conectar. Para obter informações sobre os parâmetros da operação DescribeInstances, consulte DescribeInstances.

Por exemplo, execute o seguinte comando para consultar o ID de uma instância chamada SessionManager-example na região China (Hangzhou):
aliyun ecs DescribeInstances --region cn-hangzhou --RegionId 'cn-hangzhou' --InstanceName 'SessionManager-example'

O valor do parâmetro InstanceId na saída do comando é o ID da instância.

image

Call API operations

Chame a operação DescribeInstances para consultar o ID da instância à qual deseja se conectar. Para obter mais informações, consulte DescribeInstances.

2,2 Gere um par de chaves

Gere um par de chaves no seu computador. O arquivo de chave pública será usado como a chave pública temporária na Etapa 2,3.

Windows computer

Abra o Prompt de Comando e execute o seguinte comando para gerar um par de chaves.

Neste exemplo, o cliente OpenSSH é usado para gerar um par de chaves no diretório C:\Users\test .
ssh-keygen -t rsa -b 2048 -f id_rsa
  • -t rsa: o tipo de chave Rivest-Shamir-Adleman (RSA).

  • -b 2048: o comprimento de chave de 2.048 bits.

  • -f id_rsa: gera os arquivos de chave chamados id_rsa no diretório de trabalho.

Importante

O sistema solicitará a inserção de uma senha (passphrase). Se definida, a senha será exigida sempre que a chave privada for usada.

Pressione Enter para pular caso não precise de uma senha.

Os arquivos de chave pública id_rsa.pub e de chave privada id_rsa são gerados no diretório de trabalho. Neste exemplo, o diretório de trabalho é C:\Users\test.

macOS or Linux computer

Abra o Terminal e execute o seguinte comando para gerar um par de chaves.

Neste exemplo, o cliente OpenSSH é usado para gerar um par de chaves.
ssh-keygen -t rsa -b 2048 -f id_rsa
  • -t rsa: o tipo de chave RSA.

  • -b 2048: o comprimento de chave de 2.048 bits.

  • -f id_rsa: gera os arquivos de chave chamados id_rsa no diretório de trabalho.

Importante

O sistema solicitará a inserção de uma senha (passphrase). Se definida, a senha será exigida sempre que a chave privada for usada.

Pressione Enter para pular caso não precise de uma senha.

Os arquivos de chave pública id_rsa.pub e de chave privada id_rsa são gerados no diretório de trabalho.

2,3 Envie a chave pública como uma chave pública temporária para a instância

Windows computer

Abra o Prompt de Comando, acesse o diretório do ali-instance-cli.exe e execute o seguinte comando para registrar a chave pública temporária em uma instância.

Substitua <instance_id> pelo ID da instância, <public_key_path> pelo caminho do arquivo de chave pública gerado na Etapa 2,2 e <ecs_username> pelo nome de usuário ao qual atribuir a chave pública temporária:
ali-instance-cli.exe send_public_key --instance <instance_id> --public-key <public_key_path> --user-name <ecs_username>

Exemplo: registre a chave pública em C:\Users\test\id_rsa.pub na instância i-bp1****** e atribua-a ao usuário ecs-user:

ali-instance-cli.exe send_public_key --instance i-bp1****** --public-key C:\Users\test\id_rsa.pub --user-name ecs-user
Importante

Após a execução bem-sucedida do comando, conecte-se à instância com a chave privada correspondente em até 60 segundos.

macOS or Linux computer

Abra o Terminal, acesse o diretório do ali-instance-cli e execute o seguinte comando para registrar a chave pública temporária em uma instância.

Substitua <instance_id> pelo ID da instância, <public_key_path> pelo caminho do arquivo de chave pública gerado na Etapa 2,2 e <ecs_username> pelo nome de usuário ao qual atribuir a chave pública temporária:
./ali-instance-cli send_public_key --instance <instance_id> --public-key <public_key_path> --user-name <ecs_username>

Exemplo: registre a chave pública em ~/id_rsa.pub na instância i-bp1****** e atribua-a ao usuário ecs-user:

./ali-instance-cli send_public_key --instance i-bp1****** --public-key ~/id_rsa.pub --user-name ecs-user
Importante
  • Após a execução bem-sucedida do comando, conecte-se à instância com a chave privada correspondente em até 60 segundos.

Se a mensagem de erro ERROR: 'install config_ecs_instance_connect' command failed aparecer após a execução do comando

Se esse erro aparecer, a instalação do plug-in config_ecs_instance_connect do Cloud Assistant falhou. Execute o comando novamente. Se o erro persistir, instale o plug-in manualmente:

Use the ECS console

Use o Cloud Assistant para enviar o seguinte comando à instância para instalar e iniciar o plug-in config_ecs_instance_connect.

Consulte Create and run commands.

acs-plugin-manager -e -P config_ecs_instance_connect --params --install

Use the CLI

Nota

Neste exemplo, i-bp15vhvt43ciprqkxxxx é usado como ID da instância. Substitua-o pelo seu ID de instância real.

aliyun ecs RunCommand --RegionId 'cn-hangzhou' \
 --Type 'RunShellScript' \
 --CommandContent 'acs-plugin-manager -e -P config_ecs_instance_connect --params --install' \
 --InstanceId.1 'i-bp15vhvt43ciprqkxxxx'    

3. Conecte-se à instância via SSH

Importante

Se o sistema avisar que a senha ou a chave pública está incorreta, a chave pública pode ter expirado. Uma chave pública temporária é válida por 60 segundos.

Abra o Prompt de Comando ou o Terminal e execute o seguinte comando para se conectar à instância.

Substitua <private_key_path> pelo caminho do arquivo de chave privada gerado na Etapa 2,2 , <ecs-username> pelo nome de usuário especificado na Etapa 2,3 e <ecs_ip> pelo endereço IP público da instância.
ssh -i <private_key_path> <ecs-username>@<ecs_ip>

Exemplo: conecte-se à instância 223...187 como ecs-user com a chave privada ~/id_rsa:

ssh -i ~/id_rsa ecs-user@223.***.***.187

Também é possível usar o recurso de encaminhamento de porta do ali-instance-cli para se conectar a uma instância sem endereço IP público. Consulte Use the port forwarding feature of Session Manager CLI to connect to an instance without a public IP address.

FAQ

A linha de comando não responde após a execução de um comando (A instância não está no status Running)

Se a linha de comando não responder após a execução de um comando do ali-instance-cli, a instância pode não estar no status Running. Para visualizar o status da instância, consulte Check whether the instance is in the Running state neste tópico.

A linha de comando não responde após a execução de um comando (Problema de configuração do grupo de segurança)

Se a linha de comando não responder após a execução de um comando do ali-instance-cli, as portas de saída necessárias podem não estar abertas no grupo de segurança. Por padrão, os grupos de segurança básicos permitem todo o tráfego de saída. Esse problema pode ocorrer caso você modifique as regras de saída ou use um grupo de segurança avançado.

Ao usar o Session Manager para se conectar a uma instância ECS, certifique-se de que o Cloud Assistant Agent em execução na instância ECS esteja conectado ao servidor do Cloud Assistant. Para isso, adicione as seguintes regras a um grupo de segurança de saída:

Em comparação com métodos de conexão como SSH e Remote Desktop Protocol (RDP), o Cloud Assistant Agent estabelece ativamente uma conexão WebSocket com o servidor do Session Manager. Basta abrir a porta WebSocket de saída do servidor do Cloud Assistant em uma regra de segurança. Para obter informações sobre o funcionamento do Session Manager, consulte a seção How Session Manager works deste tópico.
Importante
  • Se você usar grupos de segurança básicos, incluindo o grupo de segurança padrão, todo o tráfego de saída é permitido. Nenhuma configuração adicional é necessária.

  • Se você usar um grupo de segurança avançado, todo o tráfego de saída é negado. Configure as regras relevantes descritas na tabela a seguir. Para obter informações sobre grupos de segurança, consulte Basic and advanced security groups.

Para obter informações sobre como adicionar regras a um grupo de segurança, consulte Add a security group rule.

Action

Priority

Protocol type

Port range

Authorization object

Description

Allow

1

Custom TCP

443

100.100.0.0/16

Esta porta é usada para acessar o servidor do Cloud Assistant.

Allow

1

Custom TCP

443

100.0.0.0/8

Esta porta é usada para acessar o servidor que armazena o pacote de instalação do Cloud Assistant Agent ao instalar ou atualizar o Cloud Assistant Agent.

Allow

1

Custom UDP

53

0.0.0.0/0

Esta porta é usada para resolver nomes de domínio.

Para se conectar a uma instância usando apenas o Session Manager, exclua as regras de entrada que permitem a porta SSH (padrão 22) e a porta RDP (padrão 3389) do grupo de segurança. Isso melhora a segurança da instância ECS.

O erro DeliveryTimeout é relatado após a execução de um comando (O Cloud Assistant Agent está offline)

Se o erro DeliveryTimeout ocorrer ao executar um comando do ali-instance-cli, o Cloud Assistant Agent pode estar indisponível. Consulte Check whether Cloud Assistant Agent is installed on the instance.

image

image

O erro "session manager is disabled, please enable first" é relatado após a execução de um comando

Se o erro session manager is disabled, please enable first ocorrer após a execução de um comando do ali-instance-cli, enable Session Manager no console.

A conexão é fechada automaticamente devido a um longo período de inatividade

As conexões do Session Manager são fechadas após o tempo limite de inatividade, cujo padrão é de 3 minutos. Use o parâmetro --idle-timeout para definir um tempo limite de inatividade personalizado em segundos.

Exemplo: conecte-se com um tempo limite de inatividade de 10 minutos:

./ali-instance-cli session --instance instance-id --idle-timeout 600
Nota

Este recurso requer as seguintes versões do ali-instance-cli:

  • Linux: 1.2.0.48

  • Windows: 1.1.0.48

  • macOS: 1.3.0.48

Como analisar os logs do ali-instance-cli

Analise os logs do ali-instance-cli para identificar problemas.

  • Logs do Session Manager CLI: ao usar o ali-instance-cli, uma pasta de log (por exemplo, ~/log/aliyun_ecs_session_log.2022XXXX) é gerada no diretório da ferramenta.

  • Logs do Cloud Assistant Agent:

    • Linux

      /usr/local/share/aliyun-assist/<Cloud Assistant Agent version>/log/
    • Windows

      C:\ProgramData\aliyun\assist\<Cloud Assistant Agent version>\log