GNU/Linux >> Tutoriels Linux >  >> Linux

Utiliser le fichier de configuration SSH pour gérer les connexions SSH à divers serveurs distants

Si vous êtes ne serait-ce qu'un peu familier avec SSH, vous savez que vous pouvez l'utiliser pour vous connecter à des systèmes Linux distants.

L'utilisation de SSH pour se connecter au système distant est simple. Tout ce que vous avez à faire est d'utiliser une commande comme celle-ci :

ssh [email protected]_IP 

Cela se connecte au port SSH par défaut 22. Vous pouvez également spécifier le port si vous le souhaitez.

Maintenant, tout cela est clair et simple si vous n'avez qu'un seul serveur. Même si vous ne vous souvenez pas de l'adresse IP du serveur, vous pouvez effectuer une recherche inversée dans l'historique à l'aide du célèbre raccourci clavier du terminal Ctrl+R et retrouver la commande SSH que vous avez utilisée dans le passé.

Mais les choses se compliquent lorsque vous avez plusieurs serveurs à gérer. J'ai une dizaine de serveurs auxquels je me connecte de temps en temps. Certains sont des serveurs de production et d'autres des serveurs de test.

Maintenant, garder une trace de ces serveurs n'est pas facile. Même si je peux trouver les commandes SSH dans l'historique, il est difficile de deviner quelle IP appartient à quel serveur.

Bien sûr, je peux ouvrir mes tableaux de bord sur Linode, UpCloud, DigitalOcean et Google Cloud pour obtenir l'adresse IP ou conserver une liste sur mon système local.

Un moyen meilleur et plus simple consiste à utiliser le fichier de configuration SSH.

Utilisation du fichier de configuration SSH pour se connecter facilement aux serveurs distants

Le fichier de configuration SSH vous permet de créer différents profils pour différentes configurations d'hôte. Il n'y a pas de limite à ces profils et vous pouvez en ajouter autant que possible.

Ainsi, si vous vous connectez à plusieurs systèmes distants via SSH, la création de profils SSH sera un bon moyen de gagner du temps.

Laissez-moi vous montrer comment l'utiliser.

Étape 1 :Créer le fichier de configuration SSH

Lorsque vous installez SSH, vous aurez un répertoire ~/.ssh créé automatiquement. Ce direct contient votre clé publique, votre clé privée et un fichier known_hosts. Votre configuration est également stockée ici.

Au moins sur Ubuntu, le fichier de configuration SSH n'est pas créé par défaut. Vous pouvez facilement créer ce fichier en utilisant la commande touch comme ceci :

touch ~/.ssh/config

Étape 2 :Ajoutez un profil SSH dans le fichier de configuration

Maintenant que vous avez le fichier de configuration SSH, vous pouvez le modifier à l'aide de Vim ou Nano. Laissez-moi vous montrer un exemple de la syntaxe que vous devez suivre.

Disons que vous vous connectez à un serveur avec IP 275.128.172.46. Votre nom d'utilisateur est Alice et le serveur est utilisé pour héberger votre site Web. Pour renforcer la sécurité SSH, vous utilisez le port 1500 au lieu du port SSH 22 par défaut.

Vous pouvez ajouter toutes ces informations de la manière suivante dans votre fichier ~/.ssh/config :

Host website
        Hostname 275.128.172.46
        User alice
        Port 1500

Enregistrez simplement les informations dans le fichier. Pas besoin de redémarrer un service.

Maintenant, au lieu d'écrire une longue commande comme celle-ci :

ssh [email protected] -p 1500

Vous pouvez simplement utiliser cette commande (la complétion par tabulation fonctionne également) :

ssh website

Lorsque vous exécutez la commande ci-dessus, ssh recherche un site Web nommé Host dans le fichier ~/.ssh/config. S'il trouve un hôte portant ce nom, il obtient toutes les informations associées et les utilise pour établir une connexion SSH.

Vous vous posez peut-être des questions sur certaines choses, je vais donc les mentionner ici :

  • Il n'y a pas de restriction d'espace ou d'indentation de tabulation lors de la saisie des informations sur l'hôte. L'espace ou l'indentation de tabulation sont utilisés pour rendre le fichier de configuration facilement compréhensible.
  • Le nom d'hôte peut être l'adresse IP du serveur ou un nom d'hôte qui peut être résolu sur votre réseau.
  • Tous les paramètres tels que le nom d'hôte, l'utilisateur et le port sont facultatifs. Cependant, je conseille personnellement de conserver au moins le nom d'hôte car c'est ce dont vous avez besoin (et que vous oubliez) la plupart du temps.
  • Si votre fichier de configuration SSH est mal configuré, cela entraînera une erreur lorsque vous essaierez de l'utiliser pour une connexion SSH.
  • Vous ne pouvez pas enregistrer les mots de passe dans la configuration SSH. Je vous conseille d'ajouter votre clé SSH publique au serveur pour un accès facile.

Étape 3 :Ajouter plusieurs profils dans le fichier de configuration SSH

L'étape précédente vous a donné une idée de la façon d'ajouter un profil SSH. Passons à l'étape suivante en y ajoutant plusieurs profils.

Voici à quoi ressemble le fichier de configuration SSH :

Host website
        Hostname 275.128.172.46
        User alice
        Port 1500
Host forum-server
        Hostname 275.128.172.47
        User alice

Host main-server
        Hostname 275.128.172.49

Host common-test-server
        Hostname test-server

Host *
        User root

Cette fois, j'y ai ajouté quatre profils SSH différents.

Avez-vous remarqué l'hôte * entrée à la fin du fichier? Vous pouvez utiliser cette entrée pour ajouter un paramètre commun à tous les profils si ce paramètre n'a pas été explicitement mentionné pour le profil.

Donc, si j'essaie d'utiliser le profil SSH du serveur principal, il prendra automatiquement l'utilisateur root.

serveur principal ssh =exemple [email protected]

Ordre de la configuration SSH

La configuration ssh suit l'ordre suivant :

  • options de ligne de commande
  • fichier de configuration de l'utilisateur (~/.ssh/config)
  • fichier de configuration à l'échelle du système (/etc/ssh/ssh_config)

Cela signifie que la priorité est donnée à la commande que vous entrez, puis elle regarde dans ~/.ssh/config puis dans /etc/ssh/ssh_config.

Ainsi, si vous souhaitez remplacer un profil, vous pouvez le faire en utilisant l'option -o de la commande ssh.

Par exemple, si j'utilise cette commande :

ssh -o "User=bob" website

Il prendra l'utilisateur bob au lieu de l'utilisateur alice tel que défini dans le ~/.ssh/config (à l'étape précédente).

Il y a beaucoup plus dans la configuration SSH

Pour être honnête, il y a tellement plus dans le fichier de configuration SSH qui ne peut pas être couvert dans un seul article. Vous pouvez utiliser la correspondance nom/IP, les sous-réseaux et autres.

Le but de cet article était de vous présenter la configuration SSH et de vous aider à créer des profils SSH pour vous connecter facilement à divers systèmes Linux distants.

Vous pouvez toujours vous référer à la page de manuel de ssh_config pour en savoir plus sur les paramètres que vous pouvez utiliser lors de la création de votre fichier de configuration SSH.

J'espère que cette astuce SSH vous a été utile. Si vous utilisez déjà le fichier de configuration SSH et que vous avez une astuce astucieuse avec vous, partagez-la avec le reste d'entre nous dans la section des commentaires.


Linux
  1. Comment utiliser le tunneling SSH pour accéder aux serveurs restreints

  2. Ssh - Corriger les paramètres du fichier de configuration Ssh pour créer un tunnel vers une troisième machine ?

  3. Pourquoi nous utilisons Plesk pour gérer nos serveurs

  4. Comment utiliser sed pour remplacer la variable d'un fichier de configuration ?

  5. SSH - Comment inclure la commande -t dans le fichier ~/.ssh/config

Comment utiliser la commande SCP pour le transfert de fichiers

Utilisation du fichier de configuration SSH

Comment utiliser SSHFS pour monter des répertoires distants sur SSH

Tutoriel complet sur la configuration des clés SSH et des connexions SSH

SSHFS :montage d'un système de fichiers distant via SSH

Comment utiliser SSH pour se connecter à un serveur distant