ProxyClient est un outil proxy côté client fourni par DSW. Il vous permet de vous connecter à une instance DSW via SSH sans configurer de VPC ni de passerelle NAT. Cette méthode est idéale pour le développement de machine learning à l'aide d'outils locaux tels que VS Code ou un terminal.
Procédure
Étape 1 : Télécharger et installer DSW ProxyClient
-
Téléchargez l'outil DSW ProxyClient et enregistrez-le dans votre répertoire personnel.
Enregistrez l'outil dans le répertoire suivant selon votre système d'exploitation :
Système d'exploitation Windows : Enregistré dans le dossier personnel de l'utilisateur, par exemple C:\Users\<username>.
Linux : Enregistrez-le dans /root pour l'utilisateur root, ou dans /home/<username> pour un utilisateur standard.
macOS : Enregistrez-le dans /Users/<username>.
Remplacez <username> par votre nom d'utilisateur réel.
Téléchargez le client correspondant à votre système d'exploitation :
-
Dans votre terminal, rendez le fichier client téléchargé exécutable. Vous pouvez ignorer cette étape pour la version Windows (x86-64).
chmod 755 <proxyclient>Remplacez
<proxyclient>par le nom du fichier client téléchargé. -
Générez un fichier de configuration.
-
Exécutez la commande de configuration.
# macOS or Linux ./proxyclient config # Windows proxyclient.exe configImportantLorsque vous exécutez la commande
./proxyclientsur macOS pour la première fois, il est possible qu'un message s'affiche :"proxyclient" cannot be opened because the developer cannot be verified.Pour continuer, ouvrez System Preferences > Security & Privacy et autorisez l'exécution deproxyclient. -
Suivez les instructions pour définir le chemin d'accès au fichier de configuration.
Saisissez un nom pour le fichier de configuration. Vous pouvez inclure un chemin d'accès.
RemarqueRecommandé : Appuyez sur Entrée pour utiliser le chemin et le nom de fichier par défaut :
~/.proxyclientconfig.Vous pouvez également spécifier un chemin et un nom de fichier personnalisés. Par exemple, sous Windows :
C:/Users/<username>/xxx/.proxyclientconfig.Si vous définissez un chemin personnalisé, vous devez le spécifier à l'aide de l'indicateur
-cou--config-filelorsque vous exécutez la commande./proxyclient addà l'étape 3.
-
Suivez les instructions pour définir les paramètres RegionId, AccessKey ID, AccessKey Secret et STSToken.
Le tableau suivant décrit les paramètres.
Paramètre
Description
RegionId
ID de la région où se trouve votre instance DSW, par exemple cn-shanghai pour Chine (Shanghai). Pour obtenir la liste des ID de région, consultez Régions et zones.
ImportantL'ID de région doit correspondre à la région de votre instance DSW.
AccessKey ID
La paire AccessKey de votre compte Alibaba Cloud. Pour plus d'informations, consultez Créer une paire AccessKey.
AccessKey Secret
STSToken
Si vous utilisez un compte Alibaba Cloud ou un utilisateur RAM, laissez ce paramètre vide.
Lorsque vous utilisez un rôle RAM pour vous connecter, vous devez utiliser des identifiants d'identité temporaires et configurer ce paramètre. Pour savoir comment générer un jeton STS, consultez Obtenir un jeton temporaire STS.
ImportantAssurez-vous que le jeton STS est valide.
-
Étape 2 : Configurer l'authentification SSH
Vous pouvez vous connecter à l'instance DSW à l'aide d'une paire de clés SSH ou d'un mot de passe.
Pour les instances DSW dans un groupe de ressources dédié, après avoir configuré l'authentification, cliquez sur Save Image dans la colonne Actions de l'instance DSW. La clé publique ou le mot de passe que vous ajoutez est enregistré dans l'image de l'instance et reste valide après le redémarrage de l'instance.
Méthode 1 : Authentification par clé (recommandée)
-
Générez une paire de clés.
-
Dans votre terminal local, exécutez la commande suivante pour générer une paire de clés permettant une connexion sans mot de passe. Par défaut, une paire de clés RSA est créée.
ssh-keygen -
Spécifiez l'emplacement d'enregistrement de la paire de clés.
Recommandé : Appuyez sur Entrée sans spécifier de nom de fichier. Les fichiers de paire de clés par défaut sont
~/.ssh/id_rsa(clé privée) et~/.ssh/id_rsa.pub(clé publique).-
Facultatif : Spécifiez un nom de fichier personnalisé pour la paire de clés, par exemple
example_id_rsa.RemarqueSi vous spécifiez un nom de fichier personnalisé, vous devez indiquer le chemin d'accès au fichier de clé privée avec le paramètre IdentityFile dans le fichier
~/.ssh/config, qui est généré à l'Étape 3 : Ajouter le proxy de l'instance DSW.
Suivez les instructions pour définir une passphrase et l'enregistrer localement. Vous utiliserez cette passphrase pour vous connecter à l'instance DSW.
-
-
Sur l'instance DSW à laquelle vous souhaitez vous connecter, ouvrez un terminal et exécutez les commandes suivantes. Le script setup_ssh.sh télécharge et installe automatiquement un serveur SSH.
wget https://dsw-resource.oss-cn-beijing.aliyuncs.com/tools/setup_ssh.sh bash setup_ssh.sh Suivez les instructions pour configurer la clé publique SSH et démarrer le serveur SSH.
Méthode 2 : Authentification par mot de passe
Accédez à l'instance DSW à laquelle vous souhaitez vous connecter et ouvrez le terminal.
-
Exécutez la commande suivante pour définir le mot de passe de l'utilisateur root.
passwd root -
Modifiez le fichier de configuration SSH pour autoriser la connexion root avec un mot de passe.
-
Ouvrez le fichier de configuration SSH.
vi /etc/ssh/sshd_config -
Remplacez le paramètre
#PermitRootLogin prohibit-passwordparPermitRootLogin yes, puis enregistrez le fichier.La configuration modifiée est la suivante.
# Authentication: #LoginGraceTime 2m PermitRootLogin yes #StrictModes yes #MaxAuthTries 6 #MaxSessions 10
-
-
Redémarrez le serveur SSH pour appliquer les modifications.
service ssh stop service ssh start
Étape 3 : Ajouter le proxy de l'instance DSW
-
À partir de la liste des instances, copiez l'ID de l'instance DSW à laquelle vous souhaitez vous connecter.
Cliquez sur l'instance cible pour développer son panneau de détails. Dans le panneau, recherchez le champ Instance ID (formaté comme
dsw-xxxxxxd6) et copiez l'ID de l'instance à utiliser pour la configuration du proxy. -
Dans votre terminal local, exécutez la commande suivante pour ajouter une instance DSW en tant qu'hôte cible SSH.
Remplacez <instance_id> par l'ID de l'instance que vous avez copié.
# macOS or Linux ./proxyclient add -i=<instance_id> # Windows proxyclient.exe add -i=<instance_id> -
Consultez le contenu du fichier
.ssh/configpour confirmer que les paramètres du proxy ont été appliqués.# macOS or Linux cat .ssh/config # Windows # In your local terminal, navigate to your user home directory and run the following command. # You can also double-click the config file to open it. explorer .ssh\config -
Facultatif : Si vous avez utilisé un nom de fichier personnalisé, tel que
example_id_rsa, lors de la génération de la paire de clés, modifiez le fichier~/.ssh/configcomme indiqué dans l'exemple suivant. Utilisez le paramètreIdentityFilepour spécifier le chemin d'accès au fichier de clé privée utilisé pour la connexion.Host dsw-b7a2765b267e**** HostName dsw-b7a2765b267e**** User root ProxyCommand ~/proxyclient connect --region-id=cn-hangzhou --instance-id=dsw-b7a2765b267e**** --config-file=*** ServerAliveInterval 30 IdentityFile ~/.ssh/example_id_rsa
Étape 4 : Se connecter à l'instance DSW
Se connecter depuis un terminal
Ouvrez un outil terminal, tel que votre interface de ligne de commande locale, et exécutez la commande suivante pour vous connecter à l'instance distante.
Remplacez <instance_id> par l'ID de votre instance DSW.
ssh <instance_id>
Vous pouvez également utiliser la commande scp pour copier des fichiers ou des répertoires entre votre machine locale et l'instance distante.
# Copy a local file to the remote instance.
scp local_file_path root@<instance_id>:<remote_file_path>
# Copy a local directory to the remote instance.
scp -r local_dir root@<instance_id>:<remote_dir>
# Copy a file from the remote instance to your local machine.
scp root@<instance_id>:<remote_file_path> <local_file_path>
# Copy a directory from the remote instance to your local machine.
scp -r root@<instance_id>:<remote_dir> <local_dir>
Se connecter depuis VS Code
Les étapes peuvent varier selon votre version de VS Code. Pour plus d'informations, consultez la documentation Visual Studio Code.
-
Ouvrez VS Code sur votre machine locale et installez l'extension Remote Connection.
Cliquez sur l'icône Extensions dans la barre d'activité pour ouvrir le marketplace. Dans la zone de recherche, saisissez
Remote - SSH. Trouvez l'extension Remote - SSH et cliquez sur Install. -
Dans la barre d'activité de VS Code, cliquez sur l'icône Remote Explorer
.Le panneau Remote Explorer s'ouvre. Vous pouvez afficher les hôtes distants configurés, tels que
dsw-*, sous le nœud SSH. -
Ajoutez une nouvelle connexion distante à l'instance.
Cliquez sur l'icône Ajouter nouveau
à côté de Remote Connection. Dans la zone de texte qui s'affiche, saisissez l'ID de l'instance DSW et appuyez sur Entrée.-
Cliquez pour sélectionner le fichier de configuration à mettre à jour.
Nous vous recommandons de sélectionner le fichier de configuration situé à l'adresse
C:\Users\<username>\.ssh\config. Dans la boîte de dialogue Host added qui apparaît dans le coin inférieur droit de VS Code, cliquez sur Connect.
Cliquez sur Linux pour sélectionner le système d'exploitation de l'instance DSW.
-
Dans la zone de texte, saisissez la passphrase que vous avez enregistrée localement à l'étape 2 et appuyez sur Entrée.
Une fois la connexion établie avec succès, VS Code affiche une page Welcome. La zone de contenu principale comprend des raccourcis Start (New File..., Open File..., Open Folder..., Clone Git Repository...) et une liste Walkthroughs (tels que Get Started with VS Code et Get Started with WSL). Cela indique que vous êtes connecté avec succès à l'instance depuis VS Code. Vous pouvez désormais ouvrir un dossier distant pour commencer le développement local.
-
Pour les connexions ultérieures à cette instance DSW, vous pouvez cliquer avec le bouton droit sur l'instance cible, sélectionner une méthode de connexion, puis suivre les instructions.
Les méthodes de connexion incluent Connect to Host in Current Window et Connect to Host in New Window.
FAQ
Q : Quelle est la différence entre Direct SSH et ProxyClient ?
Méthode A : Direct SSH | Méthode B : ProxyClient | |
Fonctionnalités | Nécessite la configuration de composants réseau tels qu'un VPC et une passerelle NAT. La connexion est plus rapide et plus stable. | Aucun composant réseau supplémentaire n'est requis. Toutefois, la vitesse et la stabilité de la connexion peuvent être médiocres. |
Instances prises en charge | Tous les types d'instances sont pris en charge, à l'exception de ceux dont les spécifications commencent par | Tous les types d'instances. |
Méthode d'authentification | Authentification via une paire de clés SSH. |
|
Méthode d'accès |
| Accès public. |
Guide de configuration | ||
Fonctionnement | PAI crée automatiquement une règle DNAT sur la passerelle NAT pour transférer les requêtes SSH publiques vers votre instance DSW. | Tout le trafic est acheminé via un serveur proxy PAI. |
Note sur la facturation | Pour l'accès public, la passerelle NAT et l'EIP engendrent des frais continus, même lorsque l'instance DSW est arrêtée. Si elles ne sont plus nécessaires, supprimez-les rapidement. | Cette configuration n'entraîne pas de frais supplémentaires. |
Q : Pourquoi la connexion échoue-t-elle pour un utilisateur RAM ?
Si vous utilisez la AccessKey d'un utilisateur RAM pour vous connecter via ProxyClient, vous devez vous assurer que le compte principal a accordé l'autorisation paidsw:GetToken à l'utilisateur RAM. Sinon, l'authentification échouera. Les étapes pour ajouter cette autorisation sont les suivantes :
Q : Pourquoi la connexion expire-t-elle ou échoue-t-elle ?
Vérifiez que, dans le fichier de configuration généré par proxyclient.exe, le RegionId est identique à la région de votre instance DSW.
Q : Puis-je créer plusieurs utilisateurs pour la connexion SSH ?
Par défaut, une instance DSW fournit uniquement l'utilisateur root pour la connexion SSH. Actuellement, DSW ne prend pas en charge nativement la création de plusieurs utilisateurs indépendants ni la configuration de connexions SSH séparées et isolées pour ces derniers. Vous pouvez essayer de créer manuellement de nouveaux utilisateurs au sein de l'instance, mais il ne s'agit pas d'une méthode officiellement prise en charge ou standard.
Q : Comment trouver les fichiers de l'espace de travail dans un IDE local ?
Après la connexion via SSH, le répertoire par défaut peut être le répertoire personnel de l'utilisateur root (/root). Vos fichiers de travail se trouvent généralement dans le chemin du disque de données monté, tel que /mnt/workspace. Dans VSCode, vous pouvez utiliser la fonctionnalité File > Open Folder dans la barre latérale pour sélectionner et ouvrir manuellement le répertoire de travail correct sur le serveur. Vous pourrez alors visualiser les fichiers de votre projet dans l'explorateur de fichiers.
Documents connexes
L'utilisation de ProxyClient peut dégrader les performances, provoquant des problèmes tels que des reconnexions fréquentes ou des vitesses lentes. Par conséquent, nous vous recommandons d'utiliser la méthode de connexion Direct SSH.