Enregistrez une clé publique temporaire valide pendant 60 secondes à l'aide d'ali-instance-cli et connectez-vous à une instance ECS avec la clé privée correspondante plutôt qu'avec un mot de passe.
Clés publiques temporaires
Les clés publiques temporaires permettent de se connecter aux instances via SSH sans configurer de paires de clés sur ces dernières. À chaque connexion, enregistrez une clé publique temporaire valide pendant 60 secondes, puis utilisez la clé privée correspondante au lieu d'un mot de passe.
Les clés publiques temporaires sont stockées sur le serveur Cloud Assistant.
Prérequis
Activer le service Session Manager
Vérifier si l'instance est à l'état Running
Vérifier si **Cloud Assistant Agent** est installé
Préparer les identifiants d'un utilisateur RAM pour Session Manager
1. Installer et configurer la CLI Session Manager
Ignorez cette étape si vous avez déjà installé et configuré la CLI Session Manager.
1,1 Installation
Installez la CLI Session Manager (ali-instance-cli) sur votre ordinateur. La méthode d'installation varie selon le système d'exploitation.
Windows
Cliquez ici pour télécharger ali-instance-cli pour Windows et enregistrez-le dans un dossier local.
Cette rubrique utilise le dossier C:\Users\test à titre d'exemple.
macOS
Dans le terminal macOS, téléchargez ali-instance-cli pour macOS :
curl -O https://aliyun-client-assist.oss-accelerate.aliyuncs.com/session-manager/mac/ali-instance-cli
Accordez les autorisations d'exécution :
chmod a+x ali-instance-cli
Linux
Installez ali-instance-cli pour Linux :
Architecture x86
curl -O https://aliyun-client-assist.oss-accelerate.aliyuncs.com/session-manager/linux/ali-instance-cli
Architecture ARM
curl -O https://aliyun-client-assist.oss-cn-beijing.aliyuncs.com/session-manager/linux_arm/ali-instance-cli
Accordez les autorisations d'exécution :
chmod a+x ali-instance-cli
1,2 Configuration
Pour vous connecter à une instance ECS avec ali-instance-cli, configurez les identifiants tels qu'une AccessKey. Voir Préparer les identifiants d'un utilisateur RAM pour Session Manager.
Windows
Cliquez sur , saisissez cmd, puis appuyez sur la touche
Enterpour ouvrir une fenêtre d'invite de commandes.-
Accédez au répertoire de ali-instance-cli.exe. Cet exemple utilise
C:\Users\test.cd C:\Users\test -
Configurez les identifiants à l'aide de l'une des méthodes suivantes :
AccessKey
Configurez l'AccessKey ID, la AccessKey secret et l'Region ID comme indiqué :
ali-instance-cli.exe configure --mode AKJeton STS
Terminez la configuration :
ali-instance-cli.exe configure set --mode StsToken --region "<region>" --access-key-id "<ak>" --access-key-secret "<sk>" --sts-token "<sts_token>"Remplacez <region>, <ak>, <sk> et <sts_token> par votre ID de région, votre AccessKey ID, votre AccessKey secret et votre
jeton STSréels.CredentialsURI
Saisissez l'URI des identifiants et l'ID de région comme indiqué :
ali-instance-cli.exe configure --mode=CredentialsURILa sortie suivante indique que la configuration a réussi.

macOS/Linux
-
Accédez au répertoire de ali-instance-cli. Cet exemple utilise le répertoire personnel
~.cd ~ -
Configurez les identifiants :
AccessKey
Configurez l'AccessKey ID, l'AccessKey secret et l'Region ID comme indiqué :
./ali-instance-cli configure --mode AKJeton STS
Terminez la configuration :
./ali-instance-cli configure set --mode StsToken --region "<region>" --access-key-id "<ak>" --access-key-secret "<sk>" --sts-token "<sts_token>"Remplacez <region>, <ak>, <sk> et <sts_token> par votre ID de région, votre AccessKey ID, votre AccessKey secret et votre
jeton STSréels.CredentialsURI
Configurez l'URI des identifiants et l'ID de région comme indiqué :
./ali-instance-cli configure --mode=CredentialsURILa sortie suivante indique que la configuration a réussi.

2. Enregistrer une clé publique temporaire sur l'instance
2.1 Obtenir l'ID de l'instance
Obtenez l'ID de l'instance cible.
Utiliser la console ECS
|
|
Utiliser Alibaba Cloud CLI
Si vous avez configuré Alibaba Cloud CLI, exécutez une commande pour appeler l'opération DescribeInstances afin d'interroger l'ID de l'instance à laquelle vous souhaitez vous connecter. Pour plus d'informations sur les paramètres de l'opération DescribeInstances, voir DescribeInstances.
Par exemple, exécutez la commande suivante pour interroger l'ID d'une instance nommée SessionManager-example qui réside dans la région Chine (Hangzhou) :
aliyun ecs DescribeInstances --region cn-hangzhou --RegionId 'cn-hangzhou' --InstanceName 'SessionManager-example'
La valeur du paramètre InstanceId dans la sortie de la commande correspond à l'ID de l'instance.

Appeler les opérations API
Appelez l'opération DescribeInstances pour interroger l'ID de l'instance à laquelle vous souhaitez vous connecter. Pour plus d'informations, voir DescribeInstances.
2,2 Générer une paire de clés
Générez une paire de clés sur votre ordinateur. Le fichier de clé publique sera utilisé comme clé publique temporaire à l'étape 2,3.
Ordinateur Windows
Ouvrez Command Prompt et exécutez la commande suivante pour générer une paire de clés.
Dans cet exemple, le client OpenSSH est utilisé pour générer une paire de clés dans le répertoire C:\Users\test .
ssh-keygen -t rsa -b 2048 -f id_rsa
-t rsa: type de cléRivest-Shamir-Adleman (RSA).-b 2048: longueur de clé de 2 048 bits.-f id_rsa: génère les fichiers de clés nommés id_rsa dans le répertoire de travail.
Une phrase secrète vous est demandée. Si elle est définie, elle sera requise à chaque utilisation de la clé privée.
Appuyez sur Entrée pour ignorer si vous n'avez pas besoin de phrase secrète.
Le fichier de clé publique id_rsa.pub et le fichier de clé privée id_rsa sont générés dans le répertoire de travail. Dans cet exemple, le répertoire de travail est C:\Users\test.
Ordinateur macOS ou Linux
Ouvrez Terminal et exécutez la commande suivante pour générer une paire de clés.
Dans cet exemple, le client OpenSSH est utilisé pour générer une paire de clés.
ssh-keygen -t rsa -b 2048 -f id_rsa
-t rsa: type de cléRSA.-b 2048: longueur de clé de 2 048 bits.-f id_rsa: génère les fichiers de clés nommés id_rsa dans le répertoire de travail.
Une phrase secrète vous est demandée. Si elle est définie, elle sera requise à chaque utilisation de la clé privée.
Appuyez sur Entrée pour ignorer si vous n'avez pas besoin de phrase secrète.
Le fichier de clé publique id_rsa.pub et le fichier de clé privée id_rsa sont générés dans le répertoire de travail.
2,3 Envoyer la clé publique en tant que clé publique temporaire à l'instance
Ordinateur Windows
Ouvrez Command Prompt, accédez au répertoire de ali-instance-cli.exe et exécutez la commande suivante pour enregistrer la clé publique temporaire sur une instance.
Remplacez <instance_id> par l'ID de l'instance, <public_key_path> par le chemin du fichier de clé publique généré à l'étape 2,2 , et <ecs_username> par le nom d'utilisateur auquel attribuer la clé publique temporaire :
ali-instance-cli.exe send_public_key --instance <instance_id> --public-key <public_key_path> --user-name <ecs_username>
Exemple : enregistrez la clé publique située à l'emplacement C:\Users\test\id_rsa.pub sur l'instance i-bp1****** et attribuez-la à l'utilisateur ecs-user :
ali-instance-cli.exe send_public_key --instance i-bp1****** --public-key C:\Users\test\id_rsa.pub --user-name ecs-user
Une fois la commande exécutée avec succès, connectez-vous à l'instance avec la clé privée correspondante dans un délai de 60 secondes.
Ordinateur macOS ou Linux
Ouvrez Terminal, accédez au répertoire de ali-instance-cli et exécutez la commande suivante pour enregistrer la clé publique temporaire sur une instance.
Remplacez <instance_id> par l'ID de l'instance, <public_key_path> par le chemin du fichier de clé publique généré à l'étape 2,2 , et <ecs_username> par le nom d'utilisateur auquel attribuer la clé publique temporaire :
./ali-instance-cli send_public_key --instance <instance_id> --public-key <public_key_path> --user-name <ecs_username>
Exemple : enregistrez la clé publique située à l'emplacement ~/id_rsa.pub sur l'instance i-bp1****** et attribuez-la à l'utilisateur ecs-user :
./ali-instance-cli send_public_key --instance i-bp1****** --public-key ~/id_rsa.pub --user-name ecs-user
Une fois la commande exécutée avec succès, connectez-vous à l'instance avec la clé privée correspondante dans un délai de 60 secondes.
3. Se connecter à l'instance via SSH
Si vous recevez un message indiquant que le mot de passe ou la clé publique est incorrect, il se peut que la clé publique ait expiré. Une clé publique temporaire est valide pendant 60 secondes.
Ouvrez Command Prompt ou Terminal et exécutez la commande suivante pour vous connecter à l'instance.
Remplacez <private_key_path> par le chemin du fichier de clé privée généré à l'étape 2,2 , <ecs-username> par le nom d'utilisateur spécifié à l'étape 2,3 , et <ecs_ip> par l'adresse IP publique de l'instance.
ssh -i <private_key_path> <ecs-username>@<ecs_ip>
Exemple : connectez-vous à l'instance 223...187 en tant qu'ecs-user avec la clé privée ~/id_rsa :
ssh -i ~/id_rsa ecs-user@223.***.***.187
Vous pouvez également utiliser la fonctionnalité de redirection de port d'ali-instance-cli pour vous connecter à une instance sans adresse IP publique. Voir Utiliser la fonctionnalité de redirection de port de la CLI Session Manager pour se connecter à une instance sans adresse IP publique.
FAQ
L'invite de commande ne répond pas après l'exécution d'une commande (l'instance n'est pas à l'état Running)
Si l'invite de commande ne répond pas après l'exécution d'une commande ali-instance-cli, il se peut que l'instance ne soit pas à l'état Running. Pour afficher l'état de l'instance, voir Vérifier si l'instance est à l'état Running dans cette rubrique.
L'invite de commande ne répond pas après l'exécution d'une commande (problème de configuration du groupe de sécurité)
Si l'invite de commande ne répond pas après l'exécution d'une commande ali-instance-cli, il se peut que les ports sortants requis ne soient pas ouverts dans le groupe de sécurité. Par défaut, les groupes de sécurité de base autorisent tout le trafic sortant. Ce problème peut survenir si vous modifiez les règles sortantes ou si vous utilisez un groupe de sécurité avancé.
Lorsque vous utilisez Session Manager pour vous connecter à une instance ECS, assurez-vous que Cloud Assistant Agent exécuté sur l'instance ECS est connecté au serveur Cloud Assistant en ajoutant les règles suivantes à un groupe de sécurité sortant :
Contrairement aux méthodes de connexion telles que SSH et Remote Desktop Protocol (RDP), Cloud Assistant Agent établit activement une connexion WebSocket avec le serveur Session Manager. Vous devez uniquement ouvrir le port sortant WebSocket du serveur Cloud Assistant dans une règle de sécurité. Pour plus d'informations sur le fonctionnement de Session Manager, voir la section Fonctionnement de Session Manager de cette rubrique.
Si vous utilisez des groupes de sécurité de base, y compris le groupe de sécurité par défaut, tout le trafic sortant est autorisé. Aucune configuration supplémentaire n'est requise.
Si vous utilisez un groupe de sécurité avancé, tout le trafic sortant est refusé. Vous devez configurer les règles pertinentes. Le tableau suivant décrit ces règles. Pour plus d'informations sur les groupes de sécurité, voir Groupes de sécurité de base et avancés.
Pour savoir comment ajouter des règles à un groupe de sécurité, voir Ajouter une règle de groupe de sécurité.
|
Action |
Priorité |
Type de protocole |
Plage de ports |
Objet d'autorisation |
Description |
|
Allow |
1 |
Custom TCP |
443 |
|
Ce port est utilisé pour accéder au serveur Cloud Assistant. |
|
Allow |
1 |
Custom TCP |
443 |
|
Ce port est utilisé pour accéder au serveur sur lequel le package d'installation de Cloud Assistant Agent est stocké lors de l'installation ou de la mise à jour de Cloud Assistant Agent. |
|
Allow |
1 |
Custom UDP |
53 |
|
Ce port est utilisé pour la résolution des noms de domaine. |
Si vous souhaitez vous connecter à une instance uniquement via Session Manager, supprimez les règles entrantes qui autorisent le port SSH (par défaut 22) et le port RDP (par défaut 3389) d'un groupe de sécurité afin d'améliorer la sécurité de l'instance ECS.
L'erreur DeliveryTimeout est signalée après l'exécution d'une commande (Cloud Assistant Agent est hors ligne)
Si l'erreur DeliveryTimeout se produit lors de l'exécution d'une commande ali-instance-cli, il se peut que Cloud Assistant Agent soit indisponible. Vérifiez si Cloud Assistant Agent est installé sur l'instance.


L'erreur "session manager is disabled, please enable first" est signalée après l'exécution d'une commande
Si l'erreur session manager is disabled, please enable first se produit après l'exécution d'une commande ali-instance-cli, activez Session Manager dans la console.
La connexion est automatiquement fermée en raison d'une longue période d'inactivité
Les connexions Session Manager se ferment après un délai d'inactivité. La valeur par défaut est de 3 minutes. Utilisez le paramètre --idle-timeout pour définir un délai d'inactivité personnalisé en secondes.
Exemple : se connecter avec un délai d'inactivité de 10 minutes :
./ali-instance-cli session --instance instance-id --idle-timeout 600
Cette fonctionnalité nécessite les versions suivantes de ali-instance-cli :
Linux :
1.2.0.48Windows :
1.1.0.48macOS :
1.3.0.48
Comment analyser les journaux de ali-instance-cli
Analysez les journaux de ali-instance-cli pour identifier les problèmes.
Journaux de la CLI Session Manager : lorsque vous utilisez ali-instance-cli, un dossier de journaux (par exemple
~/log/aliyun_ecs_session_log.2022XXXX) est généré dans le répertoire de l'outil.-
Journaux 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
-


