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?
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.
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:
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.
J'ai trouvé la solution finalement:
Sudo apt-get remove landscape-client landscape-common
session optional pam_motd.so
in /etc/pam.d/login
et /etc/pam.d/sshd
Maintenant, la connexion est instantanée!
D'après votre description, cela ressemble plus à un problème de réseau. Diagnostiquer:
Si vous pouvez vous connecter correctement avec Windows et PuTTY, ce n'est probablement pas un problème du côté du serveur.
Si PermitEmptyPassword
et UsePAM
sont 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 PermitEmptyPassword
est 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 PermitEmptyPassword
ou UsePAM
name__, 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
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.
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.
Vérifiez les journaux de votre système dans/var/log, vous pouvez trouver un message avec l’erreur/le délai correspondant.
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:
top
pour voir ce qui se passe.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).
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