SSH à distance: conseils et astuces

Dans un article précédent sur Remote SSH, nous avons examiné comment configurer une machine virtuelle Linux et se connecter à une machine virtuelle à l' aide de l'extension Remote-SSH dans Visual Studio Code. Dans cet article, nous parlerons de quelques trucs et astuces que vous pouvez utiliser pour tirer le meilleur parti de votre configuration à distance.



Se connecter en utilisant SSH distant


L'extension Visual Studio Code Remote - SSH vous permet de vous connecter à une machine distante ou à une machine virtuelle à l'aide de SSH, et tout cela depuis VS Code. Si l'extension n'est pas déjà installée, vous pouvez rechercher «ssh distant» dans l'onglet «Extensions» (⇧⌘X).



Après avoir installé l'extension, vous verrez un indicateur dans le coin inférieur gauche de la barre d'état. Cet indicateur vous indique dans quel contexte VS Code (local ou distant) fonctionne. Cliquez sur l'indicateur pour afficher une liste des commandes d'extension à distance.



Fichier de configuration SSH


Dans un article précédent sur SSH distant, nous nous sommes connectés à une seule machine et, à l'invite, nous avons entré «user @ host». Si vous vous connectez régulièrement à plusieurs serveurs distants ou machines virtuelles locales, il existe un meilleur moyen de se connecter sans avoir à se souvenir de tous les noms d'utilisateur, adresses et paramètres de configuration supplémentaires.

OpenSSH prend en charge l'utilisation d' un fichier de configuration pour stocker toutes vos différentes connexions SSH. Pour utiliser le fichier de configuration SSH, cliquez sur l'indicateur distant pour appeler les commandes distantes, sélectionnez «Ouvrir le fichier de configuration» et sélectionnez le fichier qui se trouve dans «Utilisateurs / {votre nom d'utilisateur} /. Ssh / config».



Voici un exemple de fichier de configuration SSH:

#      SSH: https://linux.die.net/man/5/ssh_config Host python-linux-vm HostName <vm address> User sana IdentityFile ~/.ssh/id_python_vm Host node-vm HostName <vm address> User sana Port 5522 IdentityFile ~/.ssh/id_node_vm 

Il existe de nombreuses autres options de configuration que vous pouvez spécifier dans le format de fichier de configuration SSH. Vous obtiendrez les modules complémentaires dans ce fichier, et vous pouvez cliquer sur (⌃Espace) pour IntelliSense pour en savoir plus sur les options de configuration.

Options utilisées ci-dessus:
HôteUn alias facile à retenir pour votre hôte.
Nom d'hôteNom d'hôte du serveur (vous pouvez utiliser l'adresse IP du serveur).
UtilisateurL'utilisateur que vous avez spécifié pour se connecter via SSH.
PortLe port utilisé pour se connecter via SSH. Le port par défaut est 22, mais si vous avez spécifié un port unique, vous pouvez le configurer ici.
IdentityFileL'emplacement du fichier où vous avez enregistré votre clé privée.
Vous pouvez ajouter des informations pour tous les hôtes que vous possédez. Après avoir enregistré le fichier de configuration, vous pouvez voir ces nœuds dans l'Explorateur distant, ainsi que tous les dossiers que vous ouvrez sur ce nœud. Vous pouvez sélectionner une icône à côté de chaque hôte ou dossier, et il lancera une nouvelle fenêtre VS Code (instance) et vous connectera à cet hôte. Dans la capture d'écran ci-dessous, je suis connecté à ma machine distante "python-linux-vm" et Remote Explorer me montre les dossiers auxquels je me suis connecté par le passé, ainsi que tous les ports redirigés de la machine distante.



Proxycommand


Parfois, vous devrez peut-être vous connecter depuis votre ordinateur de bureau ou portable à un ordinateur distant via l'intranet de votre entreprise ou derrière un pare-feu. Dans ce cas, vous pouvez utiliser un serveur intermédiaire ou un jump-box . Ce type de configuration est utile si vous exécutez un système sécurisé configuré pour accepter les connexions SSH uniquement à partir d'un ensemble fixe d'hôtes.

Pour utiliser la configuration du jump-box avec l'extension Remote - SSH, vous pouvez utiliser le paramètre de configuration ProxyCommand . Cette configuration ouvrira une connexion SSH en arrière-plan avec le boîtier de connexion, puis se connectera via l'adresse IP privée à la cible.

Vous pouvez définir le paramètre de configuration ProxyCommand dans le fichier de configuration SSH comme suit:

 # Jump box   IP- Host jump-box HostName 52.179.157.97 User sana IdentityFile ~/.ssh/jumpbox #     IP- Host target-box HostName <IP address of target> User sana IdentityFile ~/.ssh/target ProxyCommand ssh -q -W %h:%p jump-box 

Controlmaster


Si vous vous connectez à un hôte SSH distant à l'aide de méthodes d'authentification autres que l'authentification par clé, telles que l'authentification à deux facteurs, basée sur un mot de passe ou une clé SSH avec une phrase de passe, vous devrez peut-être saisir les informations requises plusieurs fois.

Au lieu d'ouvrir plusieurs connexions SSH, vous pouvez utiliser l'option ControlMaster (uniquement sur les clients macOS / Linux) pour réutiliser une connexion existante et réduire le nombre de fois que vous devez saisir votre phrase secrète.

Pour utiliser cette fonctionnalité, ajoutez les éléments suivants à votre fichier de configuration SSH:

 Host * ControlMaster auto ControlPath ~/.ssh/sockets/%r@%h-%p ControlPersist 600 

Ordinateur distant autonome


Si vous êtes limité par un pare-feu ou que votre entreprise bloque vos machines virtuelles et qu'elles ne peuvent pas se connecter à Internet, l'extension Remote - SSH ne pourra pas se connecter à votre machine virtuelle car VS Code doit télécharger un composant appelé VS Code Server sur la machine distante.

Cependant, vous pouvez maintenant résoudre ce problème avec un nouveau paramètre utilisateur dans l'extension distante - SSH. Si vous activez le paramètre remote.SSH.allowLocalServerDownload , l'extension installera d'abord VS Code Server sur le client, puis le copiera sur le serveur via SCP.

Remarque Il s'agit actuellement d'une fonctionnalité expérimentale, mais elle sera activée par défaut dans une future version.

Télécommande - Extension SSH Nightly


Si vous souhaitez tester de nouvelles mises à jour et fonctionnalités expérimentales dès qu'elles sont disponibles, installez l'extension Remote - SSH Nightly (supprimez d'abord l'extension stable Remote-SSH). Il s'agit d'une version du jour de l'extension, où nous expérimentons de nouvelles fonctionnalités et de nouveaux paramètres avant de les ajouter à la version stable.

Source: https://habr.com/ru/post/fr472274/


All Articles