Recherche de site Web

4 façons d'accélérer les connexions SSH sous Linux


SSH est la méthode la plus populaire et la plus sécurisée pour gérer les serveurs Linux à distance. L'un des défis de la gestion des serveurs distants réside dans les vitesses de connexion, en particulier lorsqu'il s'agit de création de sessions entre les machines distantes et locales.

Il existe plusieurs goulots d'étranglement dans ce processus. Un scénario est celui où vous vous connectez à un serveur distant pour la première fois ; l'établissement d'une session prend normalement quelques secondes. Cependant, lorsque vous essayez de démarrer plusieurs connexions successivement, cela entraîne une surcharge (combinaison de temps de calcul excessif ou indirect, de mémoire, de bande passante ou d'autres ressources associées pour réaliser l'opération).

Dans cet article, nous partagerons quatre conseils utiles sur la façon d'accélérer les connexions SSH distantes sous Linux.

1. Forcer la connexion SSH sur IPV4

OpenSSH prend en charge IPv4/IP6, mais les connexions IPv6 ont parfois tendance à être plus lentes. Vous pouvez donc envisager de forcer les connexions ssh sur IPv4 uniquement, en utilisant la syntaxe ci-dessous :

ssh -4 [email 

Vous pouvez également utiliser la directive AddressFamily (spécifie la famille d'adresses à utiliser lors de la connexion) dans votre fichier de configuration ssh /etc/ssh/ssh_config (configuration globale) ou ~ /.ssh/config (fichier spécifique à l'utilisateur).

Les valeurs acceptées sont « any », « inet » pour IPv4 uniquement ou « inet6 ».

vi ~.ssh/config 

Voici un guide de démarrage utile sur la configuration du fichier de configuration ssh spécifique à l'utilisateur :

  1. Comment configurer des connexions SSH personnalisées pour simplifier l'accès à distance

De plus, sur la machine distante, vous pouvez également demander au démon sshd de prendre en compte les connexions sur IPv4 en utilisant la directive ci-dessus dans le fichier /etc/ssh/sshd_config.

2. Désactivez la recherche DNS sur la machine distante

Par défaut, le démon sshd recherche le nom d'hôte distant et vérifie également que le nom d'hôte résolu pour l'adresse IP distante correspond à la même adresse IP. Cela peut entraîner des retards dans l'établissement de la connexion ou la création de session.

La directive UseDNS contrôle la fonctionnalité ci-dessus ; pour le désactiver, recherchez-le et décommentez-le dans le fichier /etc/ssh/sshd_config. S'il n'est pas défini, ajoutez-le avec la valeur no.

UseDNS  no

3. Réutiliser la connexion SSH

Un programme client ssh est utilisé pour établir des connexions à un démon sshd acceptant les connexions distantes. Vous pouvez réutiliser une connexion déjà établie lors de la création d'une nouvelle session ssh, ce qui peut considérablement accélérer les sessions suivantes.

Vous pouvez l'activer dans votre fichier ~/.ssh/config.

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

La configuration ci-dessus (Host *) permettra la réutilisation de la connexion pour tous les serveurs distants auxquels vous vous connectez à l'aide de ces directives :

  • ControlMaster : permet le partage de plusieurs sessions sur une seule connexion réseau.
  • ControlPath : définit un chemin vers le socket de contrôle utilisé pour le partage de connexion.
  • ControlPersist – s'il est utilisé avec ControlMaster, indique à ssh de garder la connexion principale ouverte en arrière-plan (en attendant les futures connexions client) une fois la connexion client initiale fermée.

Vous pouvez l'activer pour les connexions à un serveur distant spécifique, par exemple :

Host server1
	HostName   www.example.com
	IdentityFile  ~/.ssh/webserver.pem
      	User username_here
	ControlMaster auto
	ControlPath  ~/.ssh/sockets/%r@%h-%p
	ControlPersist  600

De cette façon, vous ne subissez la surcharge de connexion que pour la première connexion, et toutes les connexions suivantes seront beaucoup plus rapides.

4. Utilisez une méthode d'authentification SSH spécifique

Une autre façon d'accélérer les connexions SSH consiste à utiliser une méthode d'authentification donnée pour toutes les connexions SSH. Nous vous recommandons ici de configurer la connexion sans mot de passe SSH à l'aide de SSH Keygen en 5 étapes simples.

Une fois cela fait, utilisez la directive PreferredAuthentications, dans les fichiers ssh_config (globaux ou spécifiques à l'utilisateur) ci-dessus. Cette directive définit l'ordre dans lequel le client doit essayer les méthodes d'authentification (vous pouvez spécifier une liste séparée par des commandes pour utiliser plusieurs méthodes).

PreferredAuthentications=publickey 

Vous pouvez éventuellement utiliser la syntaxe ci-dessous à partir de la ligne de commande.

ssh -o "PreferredAuthentications=publickey" [email 

Si vous préférez une authentification par mot de passe jugée non sécurisée, utilisez-la.

ssh -o "PreferredAuthentications=password" [email 

Enfin, vous devez redémarrer votre démon sshd après avoir effectué toutes les modifications ci-dessus.

systemctl restart sshd	#Systemd
service sshd restart 		#SysVInit

Pour plus d'informations sur les directives utilisées ici, consultez les pages de manuel ssh_config et sshd_config.

man ssh_config
man sshd_config 

Consultez également ces guides utiles pour sécuriser ssh sur les systèmes Linux :

  1. 5 bonnes pratiques pour sécuriser et protéger le serveur SSH
  2. Comment déconnecter les connexions SSH inactives ou inactives sous Linux

C'est tout pour le moment! Avez-vous des trucs/astuces pour accélérer les connexions SSH. Nous serions ravis d’entendre d’autres façons de procéder. Utilisez le formulaire de commentaires ci-dessous pour partager avec nous.