Quand j'essaie de ssh
, la demande de mot de passe met trop de temps à apparaître (presque deux minutes).
Pourquoi cela se produit-il?
Quand j'essaie de ssh
, la demande de mot de passe met trop de temps à apparaître (presque deux minutes).
Pourquoi cela se produit-il?
Il y a plusieurs choses qui peuvent mal tourner. Ajoutez -vvv
pour que ssh imprime une trace détaillée de ce qu'il fait, et voir où il s'arrête.
Le problème pourrait être du côté du client ou du serveur.
Un problème courant sur le serveur est si vous vous connectez depuis un client pour lequel les recherches DNS inversées prennent du temps. (Une "recherche DNS inverse" signifie obtenir à partir de l'adresse IP de la machine cliente un nom d'hôte. Ce n'est pas vraiment utile pour la sécurité, seulement légèrement utile pour diagnostiquer les tentatives d'intrusion à partir des journaux, mais la configuration par défaut le fait quand même.) Pour désactiver les recherches DNS inversées, ajoutez UseDNS no
à /etc/ssh/sshd_config
(vous devez être root sur le serveur; n'oubliez pas de redémarrer le service SSH ensuite).
Une autre chose qui peut mal tourner est l'authentification GSSAPI qui prend du temps. Si vous ne savez pas ce que c'est, vous ne vous en servez probablement pas; vous pouvez le désactiver en ajoutant la ligne GSSAPIAuthentication no
à /etc/ssh/ssh_config
ou ~/.ssh/config
(c'est du côté client).
Laissez le temps au processus de connexion et voyez combien de temps cela prendra :
[root@gislab00207 ~]# time ssh root@ISSLABNTL01
root@isslabntl01's password:
Last login: Fri Oct 4 07:55:03 2013 from 3.60.40.232
[root@ISSLABNTL01 ~]# exit
logout
La connexion à ISSLABNTL01 est fermée.
real 0m45.192s
user 0m0.003s
sys 0m0.005s
Vous avez du nouveau courrier dans /var/spool/mail/root
[root@gislab00207 ~]#
Comme on peut le voir ci-dessus, cela a pris environ 45 secondes pour se connecter -------- TRÈS LENT
Une fois connecté en tant que root, éditez le fichier sshd_config et changez l'entrée UseDNS comme ci-dessous. Ici, j'utilise sed au lieu d'éditer le fichier.
[root@ISSLABNTL01 ~]# grep -i dns /etc/ssh/sshd_config
#UseDNS yes
[root@ISSLABNTL01 ~]# sed -i 's/#UseDNS yes/UseDNS no/g' /etc/ssh/sshd_config
[root@ISSLABNTL01 ~]# grep -i dns /etc/ssh/sshd_config
UseDNS no
[root@ISSLABNTL01 ~]# service sshd restart
Arrêt de sshd : [ OK ]
Démarrage de sshd : [ OK ]
[root@ISSLABNTL01 ~]# exit
Laissez-nous chronométrer le processus de connexion et voir maintenant combien de temps cela prendra.
[root@gislab00207 ~]# time ssh root@ISSLABNTL01
root@isslabntl01's password:
Last login: Fri Oct 4 07:55:03 2013 from 3.60.40.232
[root@ISSLABNTL01 ~]# exit
logout
La connexion à ISSLABNTL01 est fermée.
real 0m6.192s
user 0m0.003s
sys 0m0.005s
Vous avez du nouveau courrier dans /var/spool/mail/root
[root@gislab00207 ~]#
On voit maintenant que cela prends 6 secondes, le temps pour moi de taper le mot de passe.
Dans mon cas, le problème peut être résolu en redémarrant systemd-logind
:
systemctl restart systemd-logind
Cela est mentionné sur Serverfault.
Cependant, je dois le faire régulièrement et je ne connais pas la cause profonde du problème.
La sortie de débogage pour ssh dans mon cas s'est simplement arrêtée pendant 30 secondes alors qu'elle était 'en train de se connecter'. La solution s'est avérée liée aux paramètres DNS sur mon système local. Une configuration réseau précédente avait laissé derrière elle un serveur DNS fictif dans le fichier /etc/resolv.conf
. Le remplacer par un serveur DNS actuel a résolu le problème.
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.