La connexion SSH directe est la méthode recommandée pour accéder à une instance DSW depuis un terminal local ou VS Code. Elle offre des performances et une stabilité supérieures à celles des connexions via ProxyClient.
Limites
-
Types d'instances non pris en charge
Dans les groupes de ressources publics, les types d'instances dont le nom commence par
ecs.ebmne prennent pas en charge les connexions SSH directes. -
Limites de connexion au réseau public
Lorsque vous vous connectez à une instance DSW via le réseau public, PAI configure automatiquement des règles DNAT sur chaque passerelle NAT Internet. Aucune configuration manuelle n'est requise.
Chaque passerelle NAT Internet prend en charge 100 règles DNAT au maximum. Par conséquent, 100 instances DSW peuvent se connecter simultanément. Pour plus d'informations sur les quotas, consultez Quotas.
Facturation
L'accès au réseau public pour une instance DSW nécessite une passerelle NAT, une adresse IP élastique (EIP) ou un Network Load Balancer (NLB). Les passerelles NAT, les EIP et les NLB sont facturés indépendamment. Des frais continuent de s'accumuler même après l'arrêt de l'instance DSW. Supprimez ces ressources dès que vous n'en avez plus besoin.
Étapes de mise en œuvre
Étape 1 : Activer la résolution DNS privée
Les instances DSW sont déployées dans des clouds privés virtuels (VPC) et les connexions SSH reposent sur un DNS privé pour résoudre les adresses IP des instances. Activez la résolution DNS privée avant de vous connecter à une instance DSW. Pour plus d'informations, consultez Activer Private DNS.
Étape 2 : Générer une paire de clés SSH
Exécutez la commande suivante sur votre client pour générer une paire de clés SSH. Lorsque vous y êtes invité, définissez une phrase secrète pour la paire de clés. Si vous prévoyez d'utiliser remote_ikernel pour vous connecter à l'instance (voir l'exemple de scénario dans cette rubrique), laissez la phrase secrète vide et appuyez sur Entrée.
Générer la paire de clés dans le chemin par défaut (recommandé)
Exécutez la commande suivante :
ssh-keygen
Une fois la commande exécutée, une clé publique (id_rsa.pub) et une clé privée (id_rsa) sont générées dans les répertoires suivants. Si une paire de clés SSH existe déjà, les fichiers existants sont écrasés. Les chemins par défaut varient selon le système d'exploitation :
Windows : répertoire
C:\Users\<username>\.ssh.Linux : répertoire
/root/.sshpour l'utilisateur root, ou répertoire/home/<username>/.sshpour les utilisateurs standard.macOS : répertoire
/Users/<username>/.ssh.
Générer la paire de clés dans un répertoire personnalisé
Exécutez la commande suivante :
ssh-keygen -f /your/path/example_rsa # Generates example_rsa.pub and example_rsa in /your/path
Étape 3 : Configurer les paramètres SSH pour l'instance DSW
Lorsque vous créez une instance DSW, configurez les paramètres réseau suivants.
Pour une instance existante, cliquez sur Change Settings pour modifier les paramètres, puis cliquez sur OK pour appliquer les modifications.
|
Paramètre |
Description |
|
VPC Settings, vSwitch, Security Group |
Des paramètres VPC Settings, un vSwitch et un Security Group sont requis pour créer une instance DSW dans un groupe de ressources public. Vous pouvez créer ces ressources en suivant les étapes ci-dessous. Pour plus d'informations, consultez Créer un VPC et des vSwitches et Gérer les groupes de sécurité. Le VPC et le groupe de sécurité doivent se trouver dans la même région que l'instance DSW. Important
Assurez-vous que les règles entrantes du groupe de sécurité autorisent le trafic sur le port TCP 22 depuis l'adresse IP de votre client. |
|
Enable SSH |
Activez l'interrupteur, puis copiez le contenu du fichier de clé publique |
|
Service Access and Port Configuration |
Après activation de l'interrupteur Enable SSH, un service nommé SSH apparaît.
|
|
Public Network Access |
Configurez ce paramètre si un accès au réseau public est requis. Sélectionnez DNAT + EIP.
Pour créer une passerelle NAT et une EIP, procédez comme suit : Vous pouvez également utiliser un NLB. Lors de la création de l'instance NLB, définissez Instance Network Type sur Internet et sélectionnez le même VPC que l'instance DSW actuelle. Pour plus d'informations, consultez Premiers pas avec NLB pour l'équilibrage de charge IPv4. Remarque
Si plusieurs instances DSW partagent la même règle DNAT et la même EIP (ou le même NLB), utilisez différents ports d'accès public. |
Étape 4 : Installer le serveur SSH
Les images de base officielles et les images personnalisées qui en sont dérivées disposent du serveur SSH installé et démarré par défaut.
Dans le terminal de l'instance DSW, exécutez service ssh status pour vérifier l'état du service, ou exécutez pgrep sshd pour vérifier si le processus sshd existe. Si le service SSH n'est pas en cours d'exécution, exécutez les commandes suivantes pour installer le serveur SSH.
**Le statut Ready de SSH dans la console indique uniquement que la configuration est terminée. Cela ne signifie pas que le processus sshd est en cours d'exécution. Exécutez pgrep sshd pour confirmer.**
sudo apt-get update
sudo apt-get install openssh-server
sudo service ssh start
Si la commande sudo est introuvable, exécutez d'abord apt-get install sudo, puis réessayez les commandes précédentes.
Sur les systèmes CentOS ou Red Hat Enterprise Linux (RHEL), exécutez yum install openssh-server ou dnf install openssh-server.
Étape 5 : Se connecter à l'instance DSW
-
Consultez les méthodes d'accès.
Sur la page DSW, cliquez sur le nom de l'instance pour accéder à la page de détails de l'instance. Dans l'onglet Instance Settings, localisez la section Network Settings et consultez la méthode d'accès public ainsi que la méthode d'accès VPC.
RemarqueSi l'accès public n'est pas sélectionné dans la configuration SSH, seule la méthode d'accès VPC s'affiche ici.
-
Connectez-vous à l'instance DSW.
Connexion via SSH
-
Accès au réseau public
Depuis votre ligne de commande locale ou un autre terminal, connectez-vous à l'instance DSW en utilisant la méthode d'accès public de l'Étape 1.
ssh root@xx.xx.xx.xx -p 1024 # If the private key is not in the default path, specify the key location ssh -i /your/path/example_rsa root@xx.xx.xx.xx -p 1024ImportantDans les commandes précédentes, le paramètre
-pspécifie le port d'accès public configuré pour SSH. Dans cet exemple, le port est 1024. -
Accès VPC
Depuis un autre terminal du VPC, tel qu'une instance ECS, connectez-vous à l'instance DSW en utilisant la méthode d'accès VPC de l'Étape 1.
ssh root@dsw-notebook-xxxx.dsw-xxxx.dsw.pai.alibaba.com -p 22 # If the private key is not in the default path, specify the key location ssh -i /your/path/example_rsa root@dsw-notebook-xxxx.dsw-xxxx.dsw.pai.alibaba.com -p 22
Connexion depuis VS Code local
-
Ouvrez VS Code et installez l'extension Remote - SSH depuis la vue Extensions.
Une fois l'installation terminée, ouvrez la palette de commandes, saisissez
remote-ssh, puis choisissez la commande Remote-SSH: Connect to Host... pour démarrer la connexion à distance. Cliquez sur
dans le coin inférieur gauche pour ouvrir la boîte de dialogue Remote-SSH, puis sélectionnez Connect to Host... > Add New SSH Host....-
Saisissez la commande de connexion SSH.
ssh root@xx.xx.xx.xx -p 1024 # If the private key is not in the default path, specify the key location ssh -i /your/path/example_rsa root@xx.xx.xx.xx -p 1024 Cliquez sur Open dans le coin inférieur droit. L'état de la connexion s'affiche dans le coin inférieur gauche.
-
Ouvrez un répertoire dans l'instance DSW pour commencer le développement et le débogage à distance.
Cliquez sur l'icône Explorer dans la barre d'activités à gauche, cliquez sur le bouton Open Folder, saisissez
/mnt/workspacedans la boîte de dialogue Open File or Folder, puis cliquez sur OK pour ouvrir le répertoire. -
Pour exécuter du code, connectez-vous à un noyau dans l'instance DSW.
Dans la liste déroulante Select a Jupyter Kernel en haut de VS Code, sélectionnez le noyau recommandé Python 3 (ipykernel).
-
Scénario : Exécuter un notebook local sur une instance DSW
Prérequis
Effectuez les étapes 1 à 4 de cette rubrique pour configurer la connexion SSH directe. Lors de la génération de la paire de clés SSH, laissez la phrase secrète vide.
Procédure
-
Depuis votre terminal local, installez remote_ikernel et ajoutez un noyau distant.
pip install remote_ikernelremote_ikernel manage --add \ --kernel_cmd="ipython kernel -f {connection_file}" \ # No changes required --name="Remote Python" \ --interface=ssh \ --host=root@*.*.*.*:1024 # Replace this with your host address. If the private key is not in the default path, use --host="-i /your/path/example_rsa root@*.*.*.*:1024"Si le message suivant s'affiche, le noyau distant est ajouté.
Added kernel ['rik_ssh_root_121_40_*_*_1024_remotepython']: SSH root@121.40.*.*:1024 Remote Python.Pour afficher la configuration du noyau distant, exécutez la commande suivante :
remote_ikernel manage --show Dans VS Code sur votre machine locale, ouvrez un fichier notebook et changez de noyau dans le coin supérieur droit. Recherchez Remote Python et sélectionnez-le.
FAQ
Q : Quelles sont les différences entre la connexion SSH directe et le proxy ProxyClient ?
Q : Comment résoudre les échecs de connexion SSH, les délais d'attente ou les rejets de clé lors de la connexion à une instance DSW ?
Résolvez le problème par catégorie :
-
Échecs de connexion au réseau public
Vérifiez que les règles entrantes du groupe de sécurité autorisent le trafic sur le port TCP 22 depuis l'adresse IP de votre client.
Si plusieurs passerelles NAT Internet existent dans le VPC, consultez Déployer des passerelles NAT mono-zone pour la haute disponibilité afin de vérifier les relations de routage entre les passerelles NAT, les vSwitches et les tables de routage.
S'il n'existe qu'une seule passerelle NAT, utilisez l'outil de dépannage en libre-service pour analyser la connectivité réseau.
-
Échecs de connexion VPC
Assurez-vous que le client et l'instance DSW se trouvent dans le même VPC. Exécutez la commande
digpour tester la résolution DNS du nom de domaine VPC de l'instance DSW. SiNXDOMAINest renvoyé, la résolution DNS ne fonctionne pas. Vérifiez les paramètres DNS privés du VPC.Si vous utilisez une image personnalisée, assurez-vous que le service SSH est installé et démarré. Pour plus d'informations, consultez Étape 4 : Installer le serveur SSH.
Vérifiez que les règles entrantes du groupe de sécurité autorisent le trafic sur le port TCP 22.
Exécutez
ssh -v root@IP -p portpour obtenir des informations détaillées sur la connexion.Connection timed outindique un problème de groupe de sécurité ou de connectivité réseau.Connection refusedindique que le port n'est pas en écoute (sshd n'est pas en cours d'exécution).Connection resetindique un problème d'authentification.
-
Rejet de clé (Permission denied)
Assurez-vous que la clé publique (l'intégralité du contenu de
id_rsa.pub) est ajoutée à la configuration SSH de l'instance DSW.Vérifiez que la clé privée utilisée dans la commande SSH correspond à la clé publique. Si la clé privée ne se trouve pas dans le chemin par défaut (
~/.ssh/id_rsa), spécifiez-la à l'aide du paramètre-i.Vérifiez si les permissions du fichier
~/.ssh/authorized_keyssont définies sur 600. Exécutezls -l ~/.ssh/authorized_keyspour vérifier. Des permissions incorrectes entraînent le rejet de la clé publique par SSH.
-
Échecs de connexion VS Code
Assurez-vous que l'extension
Remote - SSHest installée et que vous avez saisi une commande SSH complète, telle quessh root@xx.xx.xx.xx -p 1024.Testez la connexion en exécutant la commande SSH dans un terminal local. Une fois la connexion de base établie, vérifiez la configuration de VS Code.
Si une erreur concernant un pipe inexistant apparaît, redémarrez VS Code ou réinstallez l'extension Remote - SSH.
Q : Puis-je utiliser un IDE local tel que PyCharm pour me connecter à distance à une instance DSW ?
Toutes les fonctionnalités basées sur le protocole SSH sont prises en charge. Lors de la connexion via PyCharm, celui-ci télécharge et installe automatiquement les composants côté serveur sur l'instance DSW. Par conséquent, l'instance DSW doit disposer d'un accès au réseau public.
Q : Comment consulter l'adresse IP publique d'une instance ?
Si une passerelle NAT Internet est configurée, consultez l'adresse IP publique en procédant comme suit :
Q : Une instance DSW prend-elle en charge plusieurs utilisateurs avec des connexions SSH distinctes ?
Par défaut, une instance DSW fournit uniquement l'utilisateur root pour les connexions SSH. DSW ne permet pas de créer plusieurs utilisateurs indépendants avec des connexions SSH isolées. Vous pouvez créer manuellement des utilisateurs supplémentaires dans l'instance, mais cette pratique n'est pas officiellement prise en charge.
Q : Pourquoi ne puis-je pas voir les fichiers de l'espace de travail lorsque je me connecte à une instance DSW depuis un IDE local tel que VS Code ou PyCharm ?
Après une connexion SSH, le répertoire par défaut peut être le répertoire personnel de l'utilisateur root (/root). Les fichiers de l'espace de travail sont généralement stockés dans un répertoire sur le disque de données monté, tel que /mnt/workspace. Dans VS Code, choisissez File > Open Folder pour ouvrir le répertoire de travail approprié.
Références
Si cette méthode ne correspond pas à votre scénario ou si vous ne souhaitez pas configurer de composants réseau supplémentaires, utilisez ProxyClient pour vous connecter à distance.
Configurez le nom du VPC, le bloc CIDR IPv4 et les informations du vSwitch. Conservez les valeurs par défaut pour les autres paramètres, puis cliquez sur OK pour créer le VPC et le vSwitch.



