Recherche de site Web

Comment rendre SSH encore plus facile à utiliser avec des fichiers de configuration


Si vous utilisez Secure Shell pour vous connecter à des serveurs Linux distants tout au long de la journée, vous devriez envisager d'utiliser un fichier de configuration pour vous faciliter la vie. Voici comment faire.

Le Shell Sécurisé (SSH) est l'un de ces outils avec lesquels chaque utilisateur de Linux travaillera probablement à un moment donné. Avec SSH, vous pouvez facilement (et en toute sécurité) vous connecter à des serveurs et des bureaux distants pour administrer, développer et vérifier ces machines.

Utiliser SSH est aussi simple que :

ssh jack@192.168.1.11

Ou même juste :

ssh 192.168.1.11

Bien sûr, vous devez échanger l'adresse IP pour l'adresse (ou le domaine) de la machine à laquelle vous devez accéder.

SSH devient un peu moins simple lorsque vous avez de nombreuses machines auxquelles vous accédez avec différentes configurations (comme des noms d'utilisateur ou des clés d'authentification SSH différents). Imaginez que vous ayez environ 20 serveurs différents auxquels vous devez vous connecter quotidiennement. Non seulement vous devrez garder une trace des adresses IP ou des domaines de ces serveurs, mais vous devrez également vous rappeler quels noms d'utilisateur ou clés d'authentification étaient utilisés. Rien que cela pourrait devenir plutôt écrasant.

Heureusement, SSH vous permet de créer un fichier de configuration pour héberger toutes ces informations. Ainsi, au lieu de devoir taper quelque chose comme ssh olivia@192.168.1.100 -p 2222, vous pouvez simplement taper ssh web1.

Laissez-moi vous montrer comment cela se fait.

Comment créer le fichier de configuration SSH

Ce dont vous aurez besoin : Les seules choses dont vous aurez besoin pour cela sont un ordinateur de bureau avec OpenSSH installé et un ou plusieurs serveurs qui autorisent les connexions SSH.

1. Créez le fichier de configuration

Connectez-vous à la machine Linux que vous utilisez pour vous connecter en SSH à toutes ces machines distantes. Ouvrez une fenêtre de terminal et créez le nouveau fichier de configuration avec la commande indiquée dans.

Créer un nouveau fichier de configuration SSH avec l'aide de nano.

Puisqu'il s'agit d'un nouveau fichier, ce sera une toile vierge à laquelle nous pouvons commencer à ajouter des configurations pour les serveurs. Disons que vous souhaitez configurer les serveurs distants suivants :

  • web1 à 192.168.1.100 avec l'utilisateur olivia

  • db1 à 192.168.1.101 avec l'utilisateur nathan et la clé SSH ~/.ssh/id_nathan

  • docker1 à 192.168.1.102 avec l'utilisateur lilly sur le port 2222

Notre première entrée ressemblera à ceci :

Host "web1"
     Hostname "192.168.1.100"
     User olivia

Si vous enregistrez et fermez le fichier à ce stade, vous pourriez vous connecter en SSH à 192.168.1.100 avec la commande :

ssh web1

2. Configurez plus d'entrées

Allons-y et configurons les deux prochaines entrées, qui dessineront comme ceci :

Host db1
     Hostname "192.168.1.101"
     User nathan
     IdentityFile ~/.ssh/id_nathan
     PubkeyAuthentication yes

Host docker1
     Hostname "192.168.1.102"
     User lilly
     Port 2222

Enregistrez et fermez le fichier. Vous pouvez maintenant vous connecter en shell sécurisé à ces machines avec les commandes :

ssh web1
ssh db1
ssh docker1

Vous pouvez utiliser n'importe quel surnom dont vous avez besoin pour chaque hôte, il suffit de les rendre mémorables afin de ne pas oublier quelle machine vous essayez d'atteindre et de ne pas avoir à consulter constamment le fichier de configuration pour rafraîchir votre mémoire.

3. Configurer un nom d'utilisateur spécifique

Disons cependant que vous utilisez le même nom d'utilisateur sur tous vos serveurs distants, mais que vous utilisez un nom d'utilisateur différent sur votre machine locale. Par exemple, le nom d'utilisateur de votre machine locale pourrait être jack mais vous avez créé l'utilisateur admin sur tous vos serveurs distants. Vous pourriez créer une seule entrée pour tous ces serveurs avec un caractère générique dans l'adresse IP comme ceci :

Host 192.168.1.*
User admin

La configuration ci-dessus serait placée en haut de votre fichier de configuration.

4. Configurer des entrées individuelles pour l'authentification par clé SSH

Vous pourriez alors configurer chaque serveur individuellement selon vos besoins, en omettant l'option Utilisateur. Par exemple, si les deux serveurs à 192.168.1.200 et 192.168.1.201 utilisent l'authentification par clé SSH, vous pourriez configurer des entrées comme ceci :

Host web2
     Hostname 192.168.1.200
     IdentityFile ~/.ssh/id_admin
     PubkeyAuthentication yes

Host web3
     Hostname 192.168.1.201
     IdentityFile ~/.ssh/id_admin
     PubkeyAuthentication yes

Parce que nous avons appliqué l'administration utilisateur à l'ensemble des machines sur le schéma d'adresses IP 192.168.1.x, ce nom d'utilisateur sera appliqué à toutes les connexions. Vous pouvez également remplacer cette configuration globale en ajoutant une ligne de configuration utilisateur au besoin.

Le fichier de configuration SSH permet plusieurs autres options (toutes peuvent être consultées dans la documentation officielle de configuration SSH), mais ces exemples présentés ci-dessus devraient être tout ce dont vous avez besoin pour commencer avec le fichier de configuration SSH.

Et c'est tout ce qu'il y a à savoir pour utiliser le fichier de configuration SSH afin de faciliter encore davantage votre accès à distance avec Secure Shell.