web-dev-qa-db-fra.com

Longue attente lors de la connexion

Lorsque je me connecte sur mon serveur, je reçois ceci:

No mail.
Last login: Fri Nov  5 14:22:45 2010...

alors je dois attendre 5 secondes et puis est prêt ...

wolfy@ubuntu-server:~$

Ce temps d'attente est-il normal ou devrais-je faire quelque chose pour "réparer" cela?

20
Wolfy

C'est généralement le résultat de pam_motd qui régénère le fichier /etc/motd. Vous pouvez vérifier les scripts individuels dans /etc/update-motd.d pour voir si quelque chose est particulièrement lent.

18
Kees Cook

J'ai les mêmes problèmes avec 10.04 (LTS).

Lorsque je lance ssh avec -vvv, il meurt à l'adresse suivante:

debug1: Entering interactive session.

Étendre cette réponse.

J'ai réussi à redémarrer le serveur à distance et j'ai activé la connexion à DEBUG. Également utilisé cette opportunité pour rester connecté et observer les autres tentatives de connexion. Voici ce qui se passe. Le client se connecte et est autorisé et se bloque au message ci-dessus.

Sur le serveur, la liste des processus montre ceci:

root       835  0.0  0.1  11476  3348 ?        Ss   13:39   0:00 sshd: till [priv]
root       840  0.0  0.0   4804  1124 ?        S    13:39   0:00 /bin/sh -c /usr/bin/env -i PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin /bin/run-parts --lsbsysinit /etc/update-motd.d
root       841  0.0  0.0   4728  1108 ?        S    13:39   0:00 /bin/run-parts --lsbsysinit /etc/update-motd.d
root       854  0.0  0.0   4804  1144 ?        S    13:39   0:00 /bin/sh /etc/update-motd.d/50-landscape-sysinfo
root       861  0.2  0.5  15388  9248 ?        S    13:39   0:00 /usr/bin/python /usr/bin/landscape-sysinfo
root       863  0.0  0.0      0     0 ?        Z    13:39   0:00 [who] <defunct>

Je peux exécuter /usr/bin/python /usr/bin/landscape-sysinfo très bien tant que je suis connecté, mais pour une raison quelconque, je ne peux pas comprendre pourquoi cela bloque le processus de connexion. Lorsque je tue le processus, la connexion continue à l'invite et réussit .

Cela ne semble pas être un problème de ssh (d), il est plutôt lié à update-motd et à paysage. J'ai désinstallé le package update-motd, mais il semble que le répertoire /etc/update-motd persiste et que les scripts soient toujours exécutés, ce qui a provoqué le blocage du processus.


Déboguer ceci plus loin:

Il s'avère que le répertoire /etc/update-motd.d/ n'appartient pas vraiment au paquetage update-motd, il semble être déclenché par l'authentification pam via sshd.


Il me semble l'avoir cloué!

Pam_motd désactivé dans les fichiers suivants:

  • /etc/pam.d/sshd
  • /etc/pam.d/login

Un de plus:

apt-get purge landscape-client landscape-common

Celles-ci semblent aider dans une certaine mesure. Bien que seulement supprime le script incriminé dans /etc/update-motd.d/ et ne supprime pas non plus tous les scripts de ce répertoire, ni ne supprime pam_motd.

En général, je n’ai trouvé aucun moyen de désactiver le code pam_motd complètement parce qu’il semble, quoi qu’il en soit, cela ralentisse le processus de connexion dans une certaine mesure. Il ne bloque pas comme le script dans landscape-common, mais il est plus lent.

Rapport de bug sur cette question:

Solutions de contournement à partir de là:

Vous avez raison de dire que la capacité de se connecter est plus importante que de présenter un motd. Si ce problème vous pose un problème, vous pouvez le désactiver de plusieurs manières:

  • commentez la ligne 'pam_motd' dans /etc/pam.d/sshd si vous ne souhaitez pas afficher de motd.
  • supprimez le contenu du répertoire /etc/update-motd.d.
  • chmod -x les scripts dans /etc/update-motd.d que vous ne voulez pas exécuter.
13
Till

J'ai trouvé la solution finalement:

  1. Sudo apt-get remove landscape-client landscape-common
  2. commentaire line session optional pam_motd.so in /etc/pam.d/login et /etc/pam.d/sshd

Maintenant, la connexion est instantanée!

10
BarsMonster

D'après votre description, cela ressemble plus à un problème de réseau. Diagnostiquer:

  • Exécutez ssh avec le paramètre -v pour être prolixe.
  • Essayez d'exécuter une requête ping sur le serveur SSH auquel vous vous connectez et vérifiez si cela se bloque également en même temps.
  • Essayez un autre type de transfert sur le même serveur. Par exemple, wget avec le paramètre --limit-rate pour extraire un fichier via HTTP et le laisser prendre suffisamment de temps pour pouvoir déclencher le comportement de "blocage".
  • Voir si elle se bloque uniquement lorsque vous êtes inactif, ou même si vous faites quelque chose pour le moment. S'il se bloque lorsqu'il est inactif, les diagnostics -v vous le diront probablement. Dans ce cas, le conseil d'utiliser keepalive pourrait vous aider (ssh -o "TCPKeepAlive yes")

Si vous pouvez vous connecter correctement avec Windows et PuTTY, ce n'est probablement pas un problème du côté du serveur.

4
roadmr

Si PermitEmptyPasswordet UsePAMsont tous deux activés, le serveur OpenSSH tente toujours de s'authentifier avec un mot de passe null, ce qui signifie en soi qu'aucune authentification n'est requise pour le compte en question. Cela se fait dès que le processus d'authentification commence, dans les deux protocoles, et non en réponse à une demande "réelle" d'authentification du client. OpenSSH n'autorisera cet accès que si l'indicateur sshd_config PermitEmptyPasswordest défini; Malheureusement, dans l’écriture du code, le test de mot de passe est effectué dans tous les cas, ce qui signifie que PAM est un échec.

Donc: désactivez PermitEmptyPasswordou UsePAMname__, mais rappelez-vous: sans PAM, vous ne pourrez pas vous connecter sans clé.

Référence: https://groups.google.com/forum/?fromgroups=#!topic/comp.security.ssh/wExY8lWlG-c

3

Dans mon expérience limitée, lorsque PuTTY fonctionne, mais pas Linux, Ubuntu dans ce cas, il est généralement maintenu en vie. Les problèmes de réseau ou de serveur affectent les deux systèmes d'exploitation client.

Vous pouvez utiliser l'option de maintien en vie ci-dessus sur la ligne de commande, mais il est un peu fastidieux à taper.

Plus facile d'éditer quelques fichiers de configuration.

Si vous avez root access et souhaitez l'activer automatiquement pour tous les utilisateurs, éditez /etc/ssh/ssh_config, ajoutez

KeepAlive yes
ServerAliveInterval 120

Si vous ne disposez pas d'un accès root ou si vous souhaitez l'activer pour un seul utilisateur, éditez ~/.ssh/config et ajoutez les deux mêmes lignes.

2
Panther

Je pense que lorsque vous vous connectez, Ubuntu exécute un ou plusieurs de ces fichiers:

/etc/bash.bashrc
~/.bash_profile
~/.bashrc

Vous pouvez voir ce qu'il y a dedans et peut-être même essayer de les exécuter pour voir ce qui prend si longtemps.

2
Savvas Radevic

Vérifiez les journaux de votre système dans/var/log, vous pouvez trouver un message avec l’erreur/le délai correspondant.

0
João Pinto

Vous voudrez peut-être essayer de surveiller les processus en cours pendant que vous vous connectez au serveur à partir d'une connexion déjà connectée (ou d'une autre console). Il est possible de repérer les processus les plus actifs ou utilisant le plus de CPU à ce moment-là.

Voici une méthode possible:

  1. Essayez de vous connecter sur une autre console.
  2. Exécutez top pour voir ce qui se passe.
  3. Connectez-vous sur la 1ère console.

Veuillez noter que si le retard n’est pas causé par un calcul gourmand en ressources processeur, vous ne remarquerez rien. Dans ce cas, le problème peut être lié aux E/S (attente d'une lecture/écriture de disque ou d'une réponse du réseau).

0
ido

Si vous avez aussi un temps d'attente avant

Éditer /etc/sshd_config

et définir (ou ajouter)

UseDNS no

ou ajoutez votre ip dans /etc/hosts s'il s'agit d'un local statique

0
user11187