Conecte-se a instâncias ECS sem senhas ou endereços IP públicos como uma alternativa segura ao SSH e 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.
Também é possível usar o ali-instance-cli com a Alibaba Cloud CLI para operações de linha de comando.
Pré-requisitos
Ativar o serviço Session Manager
Verificar se a instância está no estado Running
Verificar se o **Cloud Assistant Agent** está instalado
Preparar as credenciais de um usuário RAM para o Session Manager
1. Instalar e configurar o Session Manager CLI
Ignore esta etapa se o Session Manager CLI já estiver instalado e configurado.
1,1 Instalação
Instale o Session Manager CLI (ali-instance-cli) em 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 Configuração
Para conectar-se a uma instância ECS com o ali-instance-cli, configure credenciais de identidade, como um AccessKey. Consulte Preparar as credenciais de um usuário RAM para o Session Manager.
Windows
Clique em , insira cmd e pressione a tecla
Enterpara abrir uma janela do prompt de comando.-
Navegue até o diretório do ali-instance-cli.exe. Este exemplo utiliza
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> pelos valores reais do seu ID da região, AccessKey ID, AccessKey secret e
STS token.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 bem-sucedida.

macOS/Linux
-
Navegue até o diretório do ali-instance-cli. Este exemplo utiliza 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> pelos valores reais do seu ID da região, AccessKey ID, AccessKey secret e
STS token.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 bem-sucedida.

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 se conectar com o Session Manager.
Console
|
|
Alibaba Cloud CLI
Se a Alibaba Cloud CLI estiver configurada, execute o comando a seguir para obter o ID da instância. Para obter 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 InstanceId na resposta corresponde ao 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, navegue até 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: conexão 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ê poderá acessar a interface de linha de comando da instância.

macOS/Linux
No terminal, navegue até 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: conexão a uma instância com o ID i-bp1******:
./ali-instance-cli session --instance i-bp1******
A saída a seguir indica que a conexão foi estabelecida com sucesso. Agora você pode acessar a interface de linha de comando da instância.

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 para acessar serviços em instâncias sem endereços IP públicos, ignorando 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.
Perguntas frequentes
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, a instância pode não estar no estado Running. Para visualizar o status da instância, consulte Verificar se a instância está no estado Running 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 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 Cloud Assistant adicionando as regras a seguir a um 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 Session Manager. Basta abrir a porta WebSocket de saída do servidor 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.
Se você usar grupos de segurança básicos, incluindo o grupo de segurança padrão, todo o tráfego de saída será permitido. Nenhuma configuração adicional é necessária.
Caso utilize um grupo de segurança avançado, todo o tráfego de saída será 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 |
|
Esta porta é usada para acessar o servidor 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 resolver nomes de domínio. |
Para conectar-se 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 para aumentar a segurança da instância ECS.
O erro DeliveryTimeout é relatado 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. Verifique se o Cloud Assistant Agent está instalado na instância.


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, ative o 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 encerradas após o tempo limite de ociosidade. O padrão é 3 minutos. Use o parâmetro --idle-timeout para definir um tempo limite de ociosidade personalizado em segundos.
Exemplo: conexão com tempo limite de ociosidade 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 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
-






