Maison > Tutoriel système > Linux > Comment gérer plusieurs connexions SSH dans Linux efficacement (guide étape par étape)

Comment gérer plusieurs connexions SSH dans Linux efficacement (guide étape par étape)

尊渡假赌尊渡假赌尊渡假赌
Libérer: 2025-03-20 09:30:16
original
243 Les gens l'ont consulté

SSH (Secure Shell) est l'outil que beaucoup d'entre nous utilisent pour se connecter en toute sécurité aux serveurs distants. Si vous travaillez avec plusieurs serveurs distants, il peut devenir difficile de se souvenir de tous les détails pour chacun. C'est là que le fichier ssh_config entre en jeu. C'est comme votre feuille de triche personnelle pour les connexions SSH. Dans cet article détaillé, nous discuterons de quel est le fichier ssh_config en termes simples et comment utiliser le fichier ssh_config pour gérer efficacement plusieurs connexions SSH dans Linux.

Que vous soyez nouveau sur SSH ou déjà familier, nous vous guiderons à l'aide de SSH_Config pour simplifier vos connexions distantes.

Table des matières

Qu'est-ce que le fichier ssh_config?

Le fichier ssh_config est le fichier de configuration utilisé par le client OpenSSH pour définir divers paramètres et paramètres pour établir des connexions SSH (Secure Shell) aux serveurs distants.

Il permet aux utilisateurs de personnaliser le comportement de leur client SSH, de gérer les options de connexion et de créer des raccourcis pour se connecter aux hôtes distants plus facilement.

Objectif de ssh_config :

Ce fichier contient des paramètres de configuration qui dicte comment le client SSH se comporte lorsque vous essayez de vous connecter à un serveur distant. Ces paramètres peuvent inclure les protocoles de sécurité à utiliser, comment s'authentifier et diverses préférences comme les délais d'attente ou les tentatives de connexion.

Emplacement :

Le fichier ssh_config est généralement trouvé sur / etc / ssh / ssh_config sur les systèmes de type UNIX. Il s'agit d'un fichier de configuration global, affectant tous les utilisateurs du système.

Les utilisateurs peuvent également avoir un fichier de configuration personnelle dans leur répertoire domestique (~ / .ssh / config), qui peut remplacer les paramètres globaux.

Format :

Le fichier est composé de paires de mots clés-argument, une par ligne. Par exemple, Host ServerName spécifie une configuration qui ne s'appliquera que lors de la connexion à ServerName. Les mots clés sont insensibles à la casse et les arguments sont généralement sensibles à la casse.

Paramètres communs :

Voici une explication de certaines directives et paramètres communs que vous pouvez configurer dans le fichier ssh_config:

  • Hôte: définit pour quel hôte (ou hôte) les paramètres suivants s'appliquent. Vous pouvez utiliser des caractères génériques comme * pour les paramètres généraux.
  • Nom d'hôte: le nom d'hôte réel auquel se connecter. Cela peut être différent du mot-clé hôte.
  • Port: Spécifie le numéro de port à connecter sur l'hôte distant.
  • Utilisateur: le nom d'utilisateur pour se connecter comme sur le serveur distant.
  • IdentityFile: spécifie un fichier à partir duquel l'identité de l'utilisateur (clé privée) pour l'authentification de la clé publique est lue.
  • PasswordAuthentication: Spécifie s'il faut utiliser l'authentification du mot de passe. Peut être oui ou non.
  • ConnectTimeout: définit l'heure en secondes pour attendre une connexion au serveur distant avant d'abandonner.

Il existe de nombreuses autres directives, mais les susmentionnés sont les plus couramment utilisés.

Utilisation :

Lorsque vous utilisez une commande SSH comme SSH User @ Host, le client SSH lit le fichier ssh_config pour déterminer les paramètres de cette connexion. S'il y a une section spécifique pour l'hôte auquel vous vous connectez, ces paramètres seront appliqués.

Édition :

Pour modifier les paramètres, vous devrez modifier ce fichier avec un éditeur de texte. Il est important d'être prudent et de savoir ce que fait chaque paramètre, car les paramètres incorrects peuvent empêcher les connexions réussies.

Sécurité :

Le ssh_config joue un rôle crucial dans la sécurité de vos connexions SSH. C'est là que vous spécifiez quel type de méthodes d'authentification est autorisé, quel type de chiffrement utiliser et d'autres paramètres liés à la sécurité.

Comprendre SSH_Config est une partie fondamentale de l'utilisation de SSH efficacement et en toute sécurité. Au fur et à mesure que vous vous familiarisez avec SSH, vous constaterez que peaufiner votre ssh_config peut rendre vos connexions distantes plus pratiques et sécurisées.

En un mot, le fichier ssh_config vous aide à créer des raccourcis, à configurer les préférences et à faire de la connexion à plusieurs serveurs un jeu d'enfant.

Exemple de fichier ssh_config

Passons à travers un exemple simple d'un fichier ssh_config avec certains paramètres communs. Cela vous aidera à comprendre comment ces paramètres sont structurés et appliqués lorsque vous vous connectez à un serveur distant à l'aide de SSH.

Voici le contenu d'un exemple de fichier ssh_config:

 # Paramètres de configuration du client Global SSH

# Utilisez ce fichier d'identité (clé privée) pour toutes les connexions
IdentityFile ~ / .ssh / id_rsa

# Désactiver l'authentification du mot de passe pour tous les hôtes, comptez sur l'authentification par clé
PasswordAuthentication Non

# Paramètres pour un hôte spécifique (Example.com)
Exemple de l'hôte.com
  Nom d'hôte Example.com
  Port 22
  MyUsername de l'utilisateur
  IdentityFile ~ / .ssh / id_rsa_example
  ConnectTimeout 10
  Compression oui

# Paramètres pour tout hôte du domaine .mycompany.com
Hôte * .mycompany.com
  Utilisateur MyCompanyUser
  Port 2222
  Stricthostkeychecking demande
  UserknownHostsFile / Dev / NULL
Copier après la connexion

Maintenant, décomposons ce que signifie chaque partie de ce fichier:

Paramètres globaux :

  • Identityfile ~ / .ssh / id_rsa: Cette ligne indique à SSH d'utiliser la clé privée située à ~ / .ssh / id_rsa pour toutes les connexions, sauf si elle est remplacée par un paramètre spécifique à l'hôte.
  • Passue-Authentification NO: Cela désactive l'authentification du mot de passe pour tous les hôtes. SSH s'appuiera à la place sur l'authentification basée sur les clés.

Remarque : Si l'authentification basée sur la clé SSH n'est pas configurée, vous pouvez ignorer la directive PasswordAuthentication dans le fichier de configuration.

Paramètres d'hôte spécifiques (Example.com) :

  • Exemple hôte.com: Cela commence une section qui ne s'applique que lors de la connexion à Example.com.
  • Nom d'hôte Exemple.com: Spécifie le nom d'hôte réel auquel se connecter.
  • Port 22: Connectez-vous au port 22 (qui est le port SSH par défaut).
  • User MyUsername: utilisez MyUsername comme nom d'utilisateur par défaut lors de la connexion à cet hôte.
  • Identityfile ~ / .ssh / id_rsa_example: utilisez un fichier de clé privé différent spécifiquement par exemple.com.
  • ConnectTimeout 10: attendez jusqu'à 10 secondes lorsque vous essayez de se connecter avant d'abandonner.
  • Compression oui: permet la compression de la connexion.

Paramètres spécifiques au domaine (* .mycompany.com) :

  • Hôte * .mycompany.com: applique ces paramètres à n'importe quel hôte dans le domaine .mycompany.com.
  • Utilisateur MyCompanyUser: nom d'utilisateur par défaut pour ces hôtes.
  • Port 2222: Connectez-vous à l'aide du port 2222 au lieu du port par défaut.
  • STRICTHOSTKEYCHECKING Demande: SSH demandera une confirmation lors de la connexion à un nouvel hôte dans ce domaine.
  • UserknownHostsFile / Dev / NULL: SSH ne se souviendra pas des clés hôtes des serveurs dans ce domaine, traitant chaque connexion comme si c'était la première fois.

Lorsque vous exécutez une commande comme SSH example.com, SSH examine ce fichier. Il applique d'abord les paramètres globaux, puis les remplace avec tous les paramètres spécifiques à l'hôte qui correspondent à l'hôte auquel vous vous connectez.

Dans ce cas, il utiliserait MyUsername comme utilisateur, se connecter au port 22, utiliser la clé privée ~ / .ssh / id_rsa_example pour l'authentification, attendre jusqu'à 10 secondes pour établir la connexion et activer la compression.

Gérer plusieurs connexions SSH

Dans la section précédente, nous avons expliqué la structure d'un exemple de fichier ssh_config. Maintenant, nous explorerons un exemple pratique de la façon d'utiliser le fichier ssh_config pour gérer efficacement plusieurs connexions SSH.

Étape 1 - Localisez ou créez votre fichier ssh_config:

Sur la plupart des systèmes de type Unix, le fichier global ssh_config est situé sur / etc / ssh / ssh_config. Cependant, vous pouvez créer un fichier de configuration personnel (par utilisateur) dans votre répertoire domestique si vous souhaitez personnaliser spécifiquement les paramètres de votre utilisateur.

Pour créer un fichier SSH_Config personnel, utilisez la commande suivante:

 $ touch ~ / .ssh / config
Copier après la connexion

Étape 2 - Modifiez votre fichier ssh_config:

Utilisez un éditeur de texte (par exemple, Nano, VIM, GEdit ou Notepad) pour ouvrir et modifier votre fichier ssh_config. Vous pouvez utiliser l'éditeur de texte Nano comme exemple:

 $ nano ~ / .ssh / config
Copier après la connexion

Étape 3 - Définir les alias hôtes:

L'une des fonctionnalités les plus utiles de ssh_config consiste à créer des alias hôtes. Pour chaque serveur distant auquel vous vous connectez fréquemment, ajoutez une section comme celle-ci:

 Hôte server_alias
    Nom d'hôte server_ip_or_domain
    Utilisateur Your_Username
    IdentityFile ~ / .ssh / your_private_key
    Port 22
Copier après la connexion

Exemple :

 Hôte Ubuntuserver
    Nom d'hôte 192.168.1.40
    Utilisateur ostechnix
    Port 22
Copier après la connexion

Remplacez UbuntUserver par votre alias choisi pour le serveur, 192.168.1.40 par l'adresse IP ou le nom de domaine du serveur, et Ostechnix par votre nom d'utilisateur sur ce serveur.

Si vous avez configuré l'authentification SSH basée sur des clés, vous devez également ajouter la ligne suivante.

 IdentityFile ~ / .ssh / your_private_key
Copier après la connexion

Remplacez ~ / .ssh / your_private_key par le chemin d'accès à votre clé SSH privée.

Vous pouvez également définir plusieurs alias hôtes, chacun avec ses propres paramètres, dans votre fichier ssh_config.

 Hôte Fileserver
    Nom d'hôte 192.168.1.50
    SK utilisateur

Hôte ftpServer
    Nom d'hôte 192.168.1.60
    Utilisateur kumar
    Port 2233

Hôte de serveur Web
    Hostname server.example.com
    Racine de l'utilisateur
Copier après la connexion

Comment gérer plusieurs connexions SSH dans Linux efficacement (guide étape par étape)

N'oubliez pas de remplacer les valeurs de l'hôte, du nom d'hôte, de l'utilisateur et du port par le vôtre. Une fois que vous avez ajouté les détails de tous les hôtes distants, enregistrez le fichier et fermez-le.

Étape 4 - Connectez-vous à un serveur distant:

Maintenant, vous pouvez vous connecter à un serveur distant simplement en utilisant l'alias que vous avez défini dans la section hôte:

 $ ssh ubunserver
Copier après la connexion

Cette commande utilisera les paramètres que vous avez définis pour cet alias dans votre fichier ssh_config.

Comment gérer plusieurs connexions SSH dans Linux efficacement (guide étape par étape)

Comme vous pouvez le voir dans la sortie ci-dessus, je peux accéder à mon système Ubuntu en utilisant son alias SSH au lieu de l'utilisateur @ ip-address.

De même, vous pouvez vous connecter à d'autres hôtes distants en utilisant leurs alias hôtes respectifs comme ci-dessous.

 $ SSH Fileserver
Copier après la connexion
 $ ssh webserver
Copier après la connexion
 $ ssh ftpserver
Copier après la connexion

Veuillez noter que cela s'applique uniquement à l'utilisateur actuel. Si vous souhaitez rendre les alias disponibles pour tous les utilisateurs (largeur du système), définissez les alias hôtes dans le fichier / etc / ssh / ssh_config.

Stratégies efficaces pour gérer plusieurs connexions SSH

La gestion efficace de plusieurs connexions SSH dépend souvent des besoins spécifiques et du flux de travail de l'utilisateur. L'approche utilisant le fichier ssh_config, comme décrit précédemment, est en effet un moyen commun et efficace de gérer plusieurs connexions SSH. Cependant, il existe d'autres méthodes et outils qui peuvent compléter ou améliorer cette approche, en particulier lorsqu'ils traitent d'un grand nombre de serveurs ou d'exigences complexes. Voici quelques options:

fichier ssh_config (approche standard) :

  • Avantages : Configuration centralisée, aucun logiciel supplémentaire requis, hautement personnalisable.
  • Inconvénients : peut devenir complexe pour un très grand nombre de serveurs, édition manuelle du fichier.

Alias ​​SSH :

Vous pouvez créer des alias dans votre fichier de configuration de shell (comme .bashrc ou .zshrc) pour un accès rapide.

Exemple : alias sshserver = 'ssh user@example.com'

  • Avantages : Rapide et facile pour un petit nombre de serveurs fréquemment accessibles.
  • Inconvénients : non évolutif pour la gestion de nombreux serveurs, n'a pas les fonctionnalités avancées de ssh_config.

Comment créer un alias SSH dans Linux

Outils de gestion SSH :

  • Des outils comme Clusterssh , TMUX et Screen peuvent aider à gérer plusieurs sessions SSH, surtout si vous devez interagir simultanément avec de nombreux serveurs.
  • Avantages : Idéal pour les actions simultanées sur plusieurs serveurs, gestion avancée de session.
  • Inconvénients : nécessite d'apprendre de nouveaux outils, plus adaptés aux utilisateurs avancés.

Outils de gestion des clés SSH :

  • Des outils tels que SSH-Agent , le trousseau ou le gnome-keyring peuvent aider à gérer les clés SSH, ce qui facilite la gestion des connexions qui nécessitent différentes clés d'authentification.
  • Avantages : simplifie la gestion clé, améliore la sécurité.
  • Inconvénients : configuration et maintenance supplémentaires.

Outils de gestion de la configuration :

  • Si votre cas d'utilisation implique des paramètres ou des scripts cohérents sur plusieurs serveurs, des outils comme ANSIBL , Puppet ou Chef peuvent être très utiles.
  • Avantages : Idéal pour l'automatisation, la cohérence dans de nombreux serveurs.
  • Inconvénients : courbe d'apprentissage plus abrupte, plus d'installation.

Bastion Host / Jump Server :

  • Dans des environnements réseau plus complexes, l'utilisation d'un hôte Bastion (ou serveur JUMP ) comme point d'entrée unique pour se connecter à d'autres serveurs peut simplifier la gestion et améliorer la sécurité.
  • Avantages : Sécurité accrue, point d'accès centralisé.
  • Inconvénients : nécessite une configuration et une maintenance supplémentaires, un seul point de défaillance.

Multiplexeur SSH :

  • Les multiplexeurs comme ControlMaster dans OpenSSH permettent la réutilisation des connexions SSH, réduisant le temps d'établir de nouvelles connexions au même hôte.
  • Avantages : Connexions plus rapides avec le même hôte, moins de surcharge d'authentification.
  • Inconvénients : complexité dans la configuration, considérations de sécurité potentielles.

La meilleure méthode dépend de vos besoins spécifiques:

  • Pour un petit nombre de serveurs et des cas d'utilisation simples, le fichier ssh_config combiné avec des alias SSH pourrait être suffisant.
  • Pour gérer simultanément plusieurs séances ou serveurs, considérez les outils de gestion SSH comme ClustersSh, TMUX ou Screen.
  • Pour des environnements complexes ou des besoins d'automatisation, consultez les outils de gestion de la configuration ou une configuration d'hôte Bastion.

Chaque méthode a son propre ensemble d'avantages et d'inconvénients, vous pouvez donc constater qu'une combinaison de ces approches vous convient le mieux.

Questions fréquemment posées (FAQ)

Q: Qu'est-ce que SSH et pourquoi est-il utilisé?

R: SSH, ou Secure Shell, est un protocole utilisé pour accéder et gérer en toute sécurité les systèmes sur un réseau non garanti. Il est largement utilisé pour la communication de données sécurisée, la connexion à distance de ligne de commande, l'exécution de commandes distante et d'autres services réseau sécurisés entre deux ordinateurs en réseau.

Q: Quel est le fichier ssh_config et où se trouve-t-il?

R: Le fichier ssh_config est un fichier de configuration pour les clients SSH. Il contient des paramètres qui définissent comment établir des connexions aux serveurs distants. Ce fichier est généralement situé sur / etc / ssh / ssh_config pour les paramètres à l'échelle du système ou ~ / .ssh / config pour les paramètres spécifiques à l'utilisateur.

Q: Comment ssh_config aide-t-il à gérer plusieurs connexions SSH?

R: SSH_CONFIG vous permet de définir des paramètres spécifiques pour différents hôtes SSH, comme les noms d'hôte, les noms d'utilisateur, les numéros de port et les clés privées. Cela simplifie la connexion à divers serveurs en vous permettant de spécifier des configurations pour chaque hôte ou groupe d'hôtes.

Q: Puis-je utiliser ssh_config pour l'authentification basée sur les clés?

R: Oui, vous pouvez spécifier le chemin d'accès aux fichiers d'identité (clés privés) dans SSH_CONFIG pour l'authentification basée sur les clés, ce qui rend plus pratique et sécurisé pour se connecter à différents serveurs sans saisir un mot de passe à chaque fois.

Q: SSH_CONFIG convient-il aux débutants?

R: SSH_CONFIG est convivial, mais il nécessite une connaissance de base de SSH et de sa syntaxe de configuration. Il convient aux débutants qui sont prêts à apprendre et à comprendre sa structure et ses paramètres de base.

Q: Y a-t-il des outils pour gérer les connexions SSH autres que SSH_CONFIG?

R: Oui, il existe plusieurs outils comme Clusterssh, TMUX, Screen et divers outils de gestion des clés SSH qui peuvent compléter ou améliorer la gestion des connexions SSH, en particulier pour les utilisateurs avancés ou les besoins spécifiques.

Q: Que dois-je faire si j'ai beaucoup de serveurs à gérer?

R: Pour gérer un grand nombre de serveurs, vous pouvez envisager d'utiliser des outils de gestion de configuration comme ANSIBLE, PUPPET ou CHEF, qui fournissent une automatisation et une configuration cohérente sur plusieurs serveurs.

Q: Comment puis-je assurer la sécurité de mes connexions SSH?

R: Assurez la sécurité des connexions SSH en utilisant l'authentification basée sur les clés, en désactivant la connexion racine, en utilisant des mots de passe solides pour les clés, en mettant régulièrement la mise à jour de votre logiciel SSH et en utilisant des fonctionnalités de sécurité comme SSH-Agent pour la gestion des clés.

Q: Puis-je automatiser les tâches SSH pour plusieurs serveurs?

R: Oui, vous pouvez utiliser des scripts avec SSH_Config, ou des outils d'automatisation comme ANSIBLE, pour automatiser les tâches sur plusieurs serveurs.

Q: Existe-t-il un moyen d'accélérer les connexions SSH avec le même hôte?

R: Oui, vous pouvez utiliser le multiplexage SSH, en particulier la fonction ControlMaster dans OpenSSH, pour réutiliser les connexions existantes, en réduisant le temps d'établir de nouvelles connexions au même hôte.

Conclusion

La gestion de plusieurs connexions SSH à l'aide du fichier ssh_config est un excellent moyen de simplifier votre flux de travail et de faciliter la connexion à divers serveurs distants.

À l'aide du fichier ssh_config, vous pouvez créer des configurations personnalisées pour des hôtes, des réseaux spécifiques ou utiliser des paramètres globaux. Le fichier SSH_Config vous permet d'adapter le comportement de votre client SSH, d'améliorer la sécurité et de rendre la connexion aux serveurs distants plus efficace.

N'oubliez pas d'utiliser la prudence lors de la modification de ce fichier, surtout si vous avez affaire à des informations sensibles ou à des paramètres liés à la sécurité.

Lire suggérée:

  • Autoriser ou refuser l'accès SSH à un utilisateur ou un groupe particulier dans Linux
  • Comment Ssh dans un répertoire particulier sur Linux
  • Comment empêcher la session SSH de se déconnecter dans Linux
  • 4 façons de maintenir une commande en cours d'exécution après votre déconnexion de la session SSH
  • SSLH - Partagez un même port pour HTTPS et SSH
  • Comment trouver si un utilisateur utilise l'authentification SSH basée sur un mot de passe ou basé sur des clés dans Linux

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal