Conéctese a instancias de ECS sin contraseñas ni direcciones IP públicas. Esta es una alternativa segura a SSH y RDP.
¿Qué es Session Manager CLI?
Session Manager CLI (ali-instance-cli) es una herramienta de CLI de Alibaba Cloud que se conecta a instancias de ECS a través de Session Manager.
También puede usar ali-instance-cli con Alibaba Cloud CLI para operaciones en la línea de comandos.
Requisitos previos
Habilitar el servicio Session Manager
Comprobar si la instancia está en estado Running
Comprobar si **Cloud Assistant Agent** está instalado
Preparar las credenciales de un usuario de RAM para Session Manager
1. Instalar y configurar Session Manager CLI
Omita este paso si ya instaló y configuró Session Manager CLI.
1.1 Instalación
Instale Session Manager CLI (ali-instance-cli) en su computadora. El método de instalación varía según el sistema operativo.
Windows
Haga clic aquí para descargar ali-instance-cli para Windows y guárdelo en una carpeta local.
Este tema usa como ejemplo la carpeta C:\Users\test .
macOS
En la terminal de macOS, descargue ali-instance-cli para macOS:
curl -O https://aliyun-client-assist.oss-accelerate.aliyuncs.com/session-manager/mac/ali-instance-cli
Otorgue permisos de ejecución:
chmod a+x ali-instance-cli
Linux
Instale ali-instance-cli para Linux:
Arquitectura x86
curl -O https://aliyun-client-assist.oss-accelerate.aliyuncs.com/session-manager/linux/ali-instance-cli
Arquitectura arm
curl -O https://aliyun-client-assist.oss-cn-beijing.aliyuncs.com/session-manager/linux_arm/ali-instance-cli
Otorgue permisos de ejecución:
chmod a+x ali-instance-cli
1.2 Configuración
Para conectarse a una instancia de ECS con ali-instance-cli, configure las credenciales de identidad, como un AccessKey. Consulte Prepare the credentials of a RAM user for Session Manager.
Windows
Haga clic en , introduzca cmd y presione la tecla
Enterpara abrir una ventana del símbolo del sistema.-
Vaya al directorio de ali-instance-cli.exe. Este ejemplo utiliza
C:\Users\test.cd C:\Users\test -
Configure las credenciales con uno de los siguientes métodos:
AccessKey
Configure el AccessKey ID, el AccessKey secret y el Region ID según las indicaciones:
ali-instance-cli.exe configure --mode AKSTS Token
Complete la configuración:
ali-instance-cli.exe configure set --mode StsToken --region "<region>" --access-key-id "<ak>" --access-key-secret "<sk>" --sts-token "<sts_token>"Reemplace
<region>,<ak>,<sk>y<sts_token>con su ID de región, AccessKey ID, AccessKey secret ytoken de STSreales.CredentialsURI
Introduzca el Credentials URI y el Region ID según las indicaciones:
ali-instance-cli.exe configure --mode=CredentialsURILa siguiente salida indica que la configuración fue exitosa.

macOS/Linux
-
Vaya al directorio de ali-instance-cli. Este ejemplo utiliza el directorio principal
~.cd ~ -
Configure las credenciales:
AccessKey
Configure el AccessKey ID, el AccessKey secret y el Region ID según las indicaciones:
./ali-instance-cli configure --mode AKSTS Token
Complete la configuración:
./ali-instance-cli configure set --mode StsToken --region "<region>" --access-key-id "<ak>" --access-key-secret "<sk>" --sts-token "<sts_token>"Reemplace
<region>,<ak>,<sk>y<sts_token>con su ID de región, AccessKey ID, AccessKey secret ytoken de STSreales.CredentialsURI
Configure el Credentials URI y el Region ID según las indicaciones:
./ali-instance-cli configure --mode=CredentialsURILa siguiente salida indica que la configuración fue exitosa.

2. Conectarse a una instancia mediante Session Manager
2.1 Obtener el ID de la instancia
Obtenga el ID de la instancia antes de conectarse con Session Manager.
Consola
|
|
Alibaba Cloud CLI
Si ya configuró Alibaba Cloud CLI, ejecute el siguiente comando para obtener el ID de la instancia. Para obtener detalles sobre los parámetros, consulte DescribeInstances.
Este tema usa como ejemplo una instancia llamada SessionManager-example en la región China (Hangzhou).
aliyun ecs DescribeInstances --region cn-hangzhou --RegionId 'cn-hangzhou' --InstanceName 'SessionManager-example'
El valor de InstanceId en la respuesta es el ID de la instancia.

API
Consulte DescribeInstances.
2.2 Usar la función Session Manager de ali-instance-cli
Máquina local: Windows
En el símbolo del sistema, vaya al directorio de ali-instance-cli.exe y conéctese a la instancia. Reemplace <instance_id> con el ID de instancia obtenido en el Paso 2.1.
ali-instance-cli.exe session --instance <instance_id>
Ejemplo: conéctese a una instancia con el ID i-bp1******:
ali-instance-cli.exe session --instance i-bp1******
Una vez establecida la conexión, podrá acceder a la interfaz de línea de comandos de la instancia.

macOS/Linux
En la terminal, vaya al directorio de ali-instance-cli y conéctese a la instancia. Reemplace <instance_id> con el ID de instancia obtenido en el Paso 2.1.
./ali-instance-cli session --instance <instance_id>
Ejemplo: conéctese a una instancia con el ID i-bp1******:
./ali-instance-cli session --instance i-bp1******
La siguiente salida indica que la conexión fue exitosa. Ahora puede acceder a la interfaz de línea de comandos de la instancia.

2.3 Conectarse a un nodo LINGJUN mediante ali-instance-cli
A partir de la versión 1.x.0.93, el subcomando session de ali-instance-cli admite el parámetro --node. Use este parámetro para especificar el ID del nodo LINGJUN al que desea conectarse.
Máquina local: Windows
En el símbolo del sistema, vaya al directorio de ali-instance-cli.exe y ejecute el siguiente comando. Reemplace <lingjun_node_id> con el ID del nodo LINGJUN.
ali-instance-cli.exe session --node <lingjun_node_id>
Una vez establecida la conexión, podrá acceder a la interfaz de línea de comandos del nodo LINGJUN.
macOS/Linux
En la terminal, vaya al directorio de ali-instance-cli y ejecute el siguiente comando. Reemplace <lingjun_node_id> con el ID del nodo LINGJUN.
./ali-instance-cli session --node <lingjun_node_id>
Una vez establecida la conexión, podrá acceder a la interfaz de línea de comandos del nodo LINGJUN.
Otras funciones
Session Manager CLI (ali-instance-cli) también admite las siguientes funciones:
-
Access instances that do not have public IP addresses (port forwarding)
Asigne un puerto de la instancia a un puerto local para acceder a servicios en instancias sin direcciones IP públicas, sin necesidad de proxies ni servidores de salto.
-
Register temporary SSH public keys
Registre una clave pública temporal en la instancia de destino y utilice la clave privada correspondiente para conexiones SSH.
Preguntas frecuentes
La línea de comandos no responde tras ejecutar un comando (la instancia no está en estado Running)
Si la línea de comandos no responde después de ejecutar un comando de ali-instance-cli, es posible que la instancia no esté en estado Running. Para consultar el estado de la instancia, vea Check whether the instance is in the Running state en este tema.
La línea de comandos no responde tras ejecutar un comando (problema de configuración del security group)
Si la línea de comandos no responde después de ejecutar un comando de ali-instance-cli, es probable que los puertos salientes obligatorios no estén abiertos en el security group. De forma predeterminada, los security groups básicos permiten todo el tráfico saliente. Este problema puede presentarse si modificó las reglas salientes o si utiliza un security group avanzado.
Cuando use Session Manager para conectarse a una instancia de ECS, asegúrese de que Cloud Assistant Agent en ejecución dentro de la instancia esté conectado al servidor de Cloud Assistant. Para ello, agregue las siguientes reglas a un security group saliente:
A diferencia de métodos de conexión como SSH y Remote Desktop Protocol (RDP), Cloud Assistant Agent establece activamente una conexión WebSocket hacia el servidor de Session Manager. Solo necesita abrir el puerto WebSocket saliente del servidor de Cloud Assistant en una regla de seguridad. Para conocer el funcionamiento de Session Manager, consulte la sección How Session Manager works de este tema.
Si utiliza security groups básicos, incluido el security group predeterminado, se permite todo el tráfico saliente. No se requiere configuración adicional.
Si utiliza un security group avanzado, se deniega todo el tráfico saliente. Debe configurar las reglas correspondientes. La siguiente tabla describe dichas reglas. Para obtener más información sobre los security groups, consulte Basic and advanced security groups.
Para saber cómo agregar reglas a un security group, consulte Add a security group rule.
|
Acción |
Prioridad |
Tipo de protocolo |
Rango de puertos |
Objeto de autorización |
Descripción |
|
Allow |
1 |
Custom TCP |
443 |
|
Este puerto se utiliza para acceder al servidor de Cloud Assistant. |
|
Allow |
1 |
Custom TCP |
443 |
|
Este puerto se utiliza para acceder al servidor donde se almacena el paquete de instalación de Cloud Assistant Agent cuando desea instalar o actualizar Cloud Assistant Agent. |
|
Allow |
1 |
Custom UDP |
53 |
|
Este puerto se utiliza para resolver nombres de dominio. |
Si desea conectarse a una instancia únicamente mediante Session Manager, elimine del security group las reglas entrantes que permiten el puerto SSH (22 de forma predeterminada) y el puerto RDP (3389 de forma predeterminada) para mejorar la seguridad de la instancia de ECS.
Se reporta el error DeliveryTimeout tras ejecutar un comando (Cloud Assistant Agent está desconectado)
Si aparece el error DeliveryTimeout al ejecutar un comando de ali-instance-cli, es posible que Cloud Assistant Agent no esté disponible. Check whether Cloud Assistant Agent is installed on the instance.


Se reporta el error "session manager is disabled, please enable first" tras ejecutar un comando
Si aparece el error session manager is disabled, please enable first después de ejecutar un comando de ali-instance-cli, enable Session Manager en la consola.
La conexión se cierra automáticamente por inactividad prolongada
Las conexiones de Session Manager se cierran tras agotar el tiempo de espera de inactividad, cuyo valor predeterminado es de 3 minutos. Utilice el parámetro --idle-timeout para establecer un tiempo de espera personalizado en segundos.
Ejemplo: conéctese con un tiempo de espera de inactividad de 10 minutos:
./ali-instance-cli session --instance instance-id --idle-timeout 600
Esta función requiere las siguientes versiones de ali-instance-cli:
Linux:
1.2.0.48Windows:
1.1.0.48macOS:
1.3.0.48
Cómo analizar los registros de ali-instance-cli
Analice los registros de ali-instance-cli para identificar problemas.
Registros de Session Manager CLI: cuando utiliza ali-instance-cli, se genera una carpeta de registros (por ejemplo,
~/log/aliyun_ecs_session_log.2022XXXX) en el directorio de la herramienta.-
Registros de Cloud Assistant Agent:
-
Linux
/usr/local/share/aliyun-assist/<Cloud Assistant Agent version>/log/ -
Windows
C:\ProgramData\aliyun\assist\<Cloud Assistant Agent version>\log
-


