SSH à distance: trucs et astuces

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



Se connecter à l'aide de SSH distant


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



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



Fichier de configuration SSH


Dans le précédent article de blog Remote SSH, nous ne nous sommes connectés qu'à une seule machine et nous l'avons fait en entrant "user @ host" lorsque cela nous était demandé. 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 options 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 un fichier de configuration SSH, cliquez sur l'indicateur distant pour faire apparaître les commandes distantes, choisissez Ouvrir le fichier de configuration et sélectionnez le fichier qui suit le chemin "Utilisateurs / {votre nom d'utilisateur} /. Ssh / config".



Voici un exemple de fichier de configuration SSH:

# Read more about SSH config files: 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 des complétions et des colorisations dans ce fichier et vous pouvez appuyer sur (⌃Espace) pour IntelliSense pour en savoir plus sur les options de configuration.

Les options utilisées ci-dessus sont:
HôteUn alias facile à retenir pour votre machine hôte.
Nom d'hôteLe nom d'hôte du serveur (vous pouvez utiliser l'adresse IP du serveur).
UtilisateurL'utilisateur que vous avez spécifié pour se connecter à la machine 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 stocké votre clé privée.
Vous pouvez ajouter les informations pour tous les hôtes que vous avez. Une fois que vous avez enregistré le fichier de configuration, vous pourrez voir ces hôtes dans l'explorateur distant, ainsi que tous les dossiers que vous avez ouverts sur cet hôte. Vous pouvez sélectionner l'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 l'Explorateur distant me montre les dossiers auxquels je me suis connecté par le passé, ainsi que tous les ports transférés depuis la machine distante.



Proxycommand


Parfois, vous devrez peut-être vous connecter depuis votre ordinateur de bureau ou portable à une machine distante via l'intranet de votre entreprise ou derrière un pare-feu. Dans ce cas, vous utilisez peut-être un serveur intermédiaire ou une boîte de saut . Ce type de configuration est utile si vous travaillez dans un système sécurisé configuré pour accepter uniquement les connexions SSH à partir d'un ensemble fixe d'hôtes.

Pour utiliser une configuration de boîte de saut avec l'extension Remote - SSH, vous pouvez utiliser l'option de configuration ProxyCommand . Cette configuration ouvrira une connexion SSH d'arrière-plan à la boîte de saut, puis se connectera via une adresse IP privée à la cible.

Vous pouvez définir l'option de configuration ProxyCommand dans le fichier de configuration SSH comme ceci:

 # Jump box with public IP address Host jump-box HostName 52.179.157.97 User sana IdentityFile ~/.ssh/jumpbox # Target machine with private IP address 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 en utilisant d'autres méthodes d'authentification en plus de l'authentification par clé, comme une clé à deux facteurs, 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 ce qui suit à votre fichier de configuration SSH:

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

Machine distante hors ligne


Si vous êtes limité par un pare-feu ou que votre entreprise verrouille 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 à la machine distante.

Cependant, vous pouvez désormais résoudre ce problème en définissant un nouveau paramètre utilisateur dans l'extension Remote - 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 la prochaine 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 (désinstallez d'abord l'extension stable Remote-SSH). Il s'agit de la version nocturne de l'extension où nous expérimentons de nouvelles fonctionnalités et de nouveaux paramètres avant de les publier dans la version stable.

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


All Articles