En dehors de chez moi, chaque fois que je me connecte à mon serveur Ubuntu à l'aide de SSH, il me faut environ 6 secondes pour obtenir l'invite de mot de passe, mais lorsque je me connecte à mon serveur d'hébergement Web, cela prend environ 1 seconde. Que puis-je faire pour accélérer cela?
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=8.04
DISTRIB_CODENAME=hardy
DISTRIB_DESCRIPTION="Ubuntu 8.04.1"
$ ssh -v
OpenSSH_4.7p1 Debian-8ubuntu1.2, OpenSSL 0.9.8g 19 Oct 2007
$ cat /proc/cpuinfo
model name : Dual-Core AMD Opteron(tm) Processor 1210
cpu MHz : 1000.000
cache size : 1024 KB
$ cat /proc/meminfo
MemTotal: 2074528 kB
La raison numéro un que j'ai vue pour cela est une option de configuration dans SSHD UseDNS
name__: cette option (activée par défaut) oblige le serveur à effectuer la résolution DNS sur les demandes entrantes. Une opération fastidieuse. J'ai vu des connexions passer d'une minute plus l'attente du mot de passe à quelques secondes. Si vous éditez /etc/ssh/sshd_config
sur le serveur et ajoutez (s'il n'est pas présent) en bas UseDNS no
, puis redémarrez le démon SSH avec service ssh restart
, vous constaterez une amélioration lors de votre prochaine connexion.
Pour moi, le motif numéro 2 (après l'option UseDNS côté serveur) des connexions longue session SSH correspond aux tentatives de connexion côté client utilisant IPv6 (qui, de toute évidence, ne sont pas correctement configurées sur mon réseau - ou presque, d'ailleurs).
Voir HOWTO: Accélérer la connexion SSH sur les forums Ubuntu.
La "solution" consiste à activer IPv4 uniquement:
1) soit pour l'invocation du client SSH donné:
ssh -4 login@hostname
2) ou globalement dans la configuration du client ssh dans /etc/ssh/ssh_config
:
Host *
AddressFamily inet
Bien sûr, il serait plus correct de configurer correctement IPv6 sur votre réseau, mais qui a le temps pour cela :)
Essayez d’ajouter l’option suivante avec votre commande ssh:
-o "PreferredAuthentications=password"
(Cela empêche ssh de négocier toute autre méthode d'authentification et accélère la promesse de mot de passe!)
En outre, tapez ceci sur la machine distante (en tant qu'utilisateur avec lequel vous vous connectez en tant que) pour supprimer tout message MOTD:
touch ~/.hushlogin
Ne pas faire autant de différence que désactiver UseDNS
, mais cela pourrait aider les connexions plus lentes.
Comme vous utilisez une version assez ancienne d’Ubuntu, il se pourrait bien que ce bogue soit: https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/300151
Redémarrer dbus (/etc/init.d/dbus restart
) pourrait vous aider.