128 votes

Pourquoi mon SSH connexion est lente?

Je constate des retards dans les connexions SSH. Plus précisément, il y a 2 points où je vois un éventail de retards allant de l'instantané à plusieurs secondes.

  1. Entre l'émission de la commande ssh et l'obtention d'un invite de connexion et
  2. entre la saisie de la phrase secrète et le chargement de l'interpréteur de commandes

Maintenant, je me concentre spécifiquement sur les détails du ssh. Évidemment, la latence du réseau, la vitesse du matériel et les systèmes d'exploitation impliqués, des scripts de connexion complexes, etc peuvent causer des retards. Pour contextualiser, je me connecte en ssh à une multitude de distributions Linux et à certains hôtes Solaris en utilisant principalement Ubuntu, CentOS et MacOS X comme systèmes client. La configuration du serveur ssh est presque toujours inchangée par rapport aux paramètres par défaut de l'OS.

Quelles configurations de serveur ssh devrais-je envisager ? Y a-t-il des paramètres OS/noyau à ajuster ? Des astuces pour le shell de connexion ? Etc ?

1voto

RGuillome Points 11

Pour compléter toutes les réponses montrant que les résolutions DNS peuvent ralentir votre connexion ssh, parfois, une règle de pare-feu manque. Par exemple, si vous REJETEZ tous les paquets d'entrée par défaut

iptables -t filter -P INPUT DROP

alors vous devrez accepter les entrées pour le port ssh et les demandes DNS

iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT

1voto

mahatmanich Points 505

ssh -vvv la connexion s'est très bien déroulée jusqu'à ce qu'elle bloque sur le système en essayant d'obtenir le terminal pendant au moins 20 secondes :

debug1: channel 0: new [client-session]
debug3: ssh_session2_open: channel_new: 0
debug2: channel 0: send open
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
... attente ... attente ... attente

Après avoir fait un systemctl restart systemd-logind sur le serveur, j'ai instantanément de nouveau la connexion !

C'était sur Debian 8 ! Donc systemd était le problème ici !

Remarque : Bastien Durel a déjà donné une réponse à ce problème, cependant il manque les informations de débogage. J'espère que cela sera utile à quelqu'un.

1voto

Hans Gruber Points 11

Nous pouvons constater que la méthode de résolution de nom préférée n'est pas le fichier hôte puis le DNS.

Par exemple, voici la configuration habituelle :

[root@LINUX1 ~]# cat /etc/nsswitch.conf|grep hosts
#hosts:     db files nisplus nis dns
hosts:      files dns myhostname

Tout d'abord, le fichier hôte est consulté (option : files) puis le DNS (option : dns), cependant nous pouvons constater qu'un autre système de résolution de nom a été ajouté et n'est pas opérationnel, ce qui nous cause des ralentissements lors de la résolution inverse.

Si l'ordre de résolution de nom n'est pas correct, vous pouvez le modifier à l'adresse suivante : /etc/nsswitch.conf

Extrait de : http://www.sysadmit.com/2017/07/linux-ssh-login-lento.html

1voto

HamedH Points 111

J'ai essayé toutes les réponses mais aucune d'entre elles n'a fonctionné. Finalement, j'ai trouvé mon problème:

D'abord, j'ai exécuté sudo tail -f /var/log/auth.log pour voir le journal de ssh puis dans une autre session j'ai exécuté ssh 172.16.111.166 et j'ai remarqué une attente sur

/usr/bin/sss_ssh_knownhostsproxy -p 22 172.16.111.166

Après avoir recherché, j'ai trouvé cette ligne dans /etc/ssd/ssh_config

ProxyCommand /usr/bin/sss_ssh_knownhostsproxy -p %p %h

Je l'ai commentée et le retard a disparu

1voto

user3320224 Points 11

Ce fil de discussion fournit déjà un tas de solutions mais le mien n'est pas donné ici =). Alors le voici. Mon problème (il fallait environ 1 minute pour se connecter en ssh sur mon raspberry pi), était dû à un fichier .bash_history corrompu. Comme le fichier est lu à la connexion, cela causait le retard de connexion. Une fois que j'ai supprimé le fichier, le temps de connexion est revenu à la normale, instantanément.

J'espère que cela aidera d'autres personnes.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X