Conecte-se a instâncias ECS sem senhas ou endereços IP públicos, como alternativa segura ao SSH e ao RDP.
O que é o Session Manager CLI?
O Session Manager CLI (ali-instance-cli) é uma ferramenta de CLI da Alibaba Cloud que conecta instâncias ECS por meio do Session Manager.
Você também pode usar o ali-instance-cli com o Alibaba Cloud CLI para operações de linha de comando.
Pré-requisitos
Ative o serviço Session Manager
Verifique se a instância está no estado Running
Verifique se o **Cloud Assistant Agent** está instalado
Prepare as credenciais de um usuário RAM para o Session Manager
1. Instale e configure o Session Manager CLI
Ignore esta etapa se você já tiver instalado e configurado o Session Manager CLI.
1,1 Instalar
Instale o Session Manager CLI (ali-instance-cli) no seu computador. O método de instalação varia conforme 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 Configurar
Para conectar-se 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
Clique em , insira cmd e pressione a tecla
Enterpara abrir uma janela de prompt de comando.-
Acesse o diretório do ali-instance-cli.exe. Este exemplo usa
C:\Users\test.cd C:\Users\test -
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 AKSTS 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> pelo seu ID de região, AccessKey ID, AccessKey secret e
STS tokenreais.CredentialsURI
Insira o Credentials URI e o Region ID conforme solicitado:
ali-instance-cli.exe configure --mode=CredentialsURIA saída a seguir indica que a configuração foi concluída com êxito.

macOS/Linux
-
Acesse o diretório do ali-instance-cli. Este exemplo usa o diretório home
~.cd ~ -
Configure as credenciais:
AccessKey
Configure o AccessKey ID, o AccessKey secret e o Region ID conforme solicitado:
./ali-instance-cli configure --mode AKSTS 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> pelo seu ID de região, AccessKey ID, AccessKey secret e
STS tokenreais.CredentialsURI
Configure o Credentials URI e o Region ID conforme solicitado:
./ali-instance-cli configure --mode=CredentialsURIA saída a seguir indica que a configuração foi concluída com êxito.

2. Conectar-se a uma instância usando o Session Manager
2,1 Obter o ID da instância
Obtenha o ID da instância antes de conectar-se via Session Manager.
Console
|
|
Alibaba Cloud CLI
Se você tiver o Alibaba Cloud CLI configurado, execute o comando a seguir para obter o ID da instância. Para detalhes sobre os parâmetros, consulte DescribeInstances.
Este tópico usa como exemplo 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 de InstanceId na resposta é o ID da instância.

API
Consulte DescribeInstances.
2,2 Usar o recurso Session Manager do ali-instance-cli
Local machine: Windows
No prompt de comando, acesse o diretório do ali-instance-cli.exe e conecte-se à instância. Substitua <instance_id> pelo ID da instância obtido na Etapa 2,1.
ali-instance-cli.exe session --instance <instance_id>
Exemplo: conectar-se a uma instância com o ID i-bp1******:
ali-instance-cli.exe session --instance i-bp1******
Após uma conexão bem-sucedida, você terá acesso à interface de linha de comando da instância.

macOS/Linux
No terminal, acesse o diretório do ali-instance-cli e conecte-se à instância. Substitua <instance_id> pelo ID da instância obtido na Etapa 2,1.
./ali-instance-cli session --instance <instance_id>
Exemplo: conectar-se a uma instância com o ID i-bp1******:
./ali-instance-cli session --instance i-bp1******
A saída a seguir indica uma conexão bem-sucedida. Você agora tem acesso à interface de linha de comando da instância.

2,3 Conectar-se a um nó LINGJUN usando o ali-instance-cli
A partir da versão 1.x.0.93, o subcomando session do ali-instance-cli oferece suporte ao parâmetro --node. Use esse parâmetro para especificar o ID do nó LINGJUN ao qual deseja se conectar.
Local machine: Windows
No prompt de comando, acesse o diretório do ali-instance-cli.exe e execute o comando a seguir. Substitua <lingjun_node_id> pelo ID do nó LINGJUN.
ali-instance-cli.exe session --node <lingjun_node_id>
Após uma conexão bem-sucedida, você terá acesso à interface de linha de comando do nó LINGJUN.
macOS/Linux
No terminal, acesse o diretório do ali-instance-cli e execute o comando a seguir. Substitua <lingjun_node_id> pelo ID do nó LINGJUN.
./ali-instance-cli session --node <lingjun_node_id>
Após uma conexão bem-sucedida, você terá acesso à interface de linha de comando do nó LINGJUN.
Outros recursos
O Session Manager CLI (ali-instance-cli) também oferece suporte aos seguintes recursos:
-
Access instances that do not have public IP addresses (port forwarding)
Mapeie uma porta da instância para uma porta local e acesse serviços em instâncias sem endereços IP públicos, sem precisar de proxies ou servidores de salto.
-
Register temporary SSH public keys
Registre uma chave pública temporária na instância de destino e use a chave privada correspondente para conexões SSH.
FAQ
A linha de comando não responde após a execução de um comando (A instância não está no estado Running)
Se a linha de comando não responder após a execução de um comando do ali-instance-cli, é possível que a instância não esteja no estado Running. Para verificar 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, grupos de segurança básicos permitem todo o tráfego de saída. Esse problema pode ocorrer se você modificar as regras de saída ou usar um grupo de segurança avançado.
Ao usar o Session Manager para conectar-se 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, adicionando as seguintes regras ao grupo de segurança de saída:
Diferentemente de 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 de saída WebSocket do servidor do Cloud Assistant em uma regra de segurança. Para saber como o Session Manager funciona, consulte a seção How Session Manager works deste tópico.
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. Nesse caso, configure as regras pertinentes. A tabela a seguir descreve as regras necessárias. Para informações sobre grupos de segurança, consulte Basic and advanced security groups.
Para saber 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 |
|
Esta porta é usada para acessar o servidor do Cloud Assistant. |
|
Allow |
1 |
Custom TCP |
443 |
|
Esta porta é usada para acessar o servidor onde o pacote de instalação do Cloud Assistant Agent está armazenado, quando você deseja instalar ou atualizar o Cloud Assistant Agent. |
|
Allow |
1 |
Custom UDP |
53 |
|
Esta porta é usada para resolução de nomes de domínio. |
Para conectar-se a uma instância usando exclusivamente 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, aumentando assim a segurança da instância ECS.
O erro DeliveryTimeout é exibido após a execução de um comando (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.


O erro "session manager is disabled, please enable first" é exibido após a execução de um comando
Se o erro session manager is disabled, please enable first ocorrer após executar um comando do ali-instance-cli, ative o Session Manager no console. Consulte enable Session Manager.
A conexão é encerrada automaticamente após um longo período de inatividade
Conexões do Session Manager são encerradas após o tempo limite de inatividade. O padrão é 3 minutos. Use o parâmetro --idle-timeout para definir um tempo limite de inatividade personalizado em segundos.
Exemplo: conectar-se com um tempo limite de inatividade de 10 minutos:
./ali-instance-cli session --instance instance-id --idle-timeout 600
Este recurso requer a seguinte versão do ali-instance-cli:
Linux:
1.2.0.48Windows:
1.1.0.48macOS:
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 logs (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
-


