Comment accélérer la connexion SSH?

23

De l'extérieur de ma maison, chaque fois que je me connecte à mon serveur Ubuntu en utilisant SSH, il me faut environ 6 secondes pour obtenir le 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
grokus
la source

Réponses:

38

La principale raison pour laquelle j'ai vu cela est une option de configuration dans SSHD UseDNScette option (activée par défaut) oblige le serveur à effectuer une résolution DNS sur les demandes entrantes. Une opération qui prend du temps. J'ai vu les connexions passer d'une minute plus attendre le mot de passe à moins de quelques secondes. Si vous modifiez /etc/ssh/sshd_configsur le serveur et ajoutez (s'il n'y en a pas) en bas, UseDNS noredémarrez le démon SSH avec service ssh restartvous devriez voir une amélioration la prochaine fois que vous vous connectez.

Marco Ceppi
la source
6
Mieux vaut corriger votre configuration DNS.
Thorbjørn Ravn Andersen
Cela a fonctionné très bien !! Merci! Le temps de connexion est passé de 20-30 secondes à moins de 5 secondes :)
AntonioCS
3
Quel est l'avantage d'avoir UseDNSactivé?
ændrük
Savoir! lorsque vous définissez la directive UserDNSaprès une Matchdirective, vous obtiendrez une erreur: is not allowed within a Matchbloquer si vous redémarrez le sshd, vous ne pourrez pas ssh dans votre serveur. J'ai fait cette erreur et j'ai été bloqué sur mon serveur. Rappelez-vous toujours de ne pas ajouter de directive au bas de sshd_configsi vous y avez une Matchdirective.
Adriano Rosa
6

Pour moi, la raison numéro 2 (après l'option UseDNS côté serveur) pour les longues connexions de session SSH sont les tentatives côté client pour se connecter en utilisant IPv6 (qui, évidemment, n'est pas configuré correctement sur mon réseau - ou presque sur tout autre réseau, d'ailleurs).

Voir HOWTO: Accélérez la connexion SSH sur les forums Ubuntu.

La «solution» consiste à activer IPv4 uniquement:

1) soit pour l'invocation du client SSH donnée:

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 :)

Aleksander Adamowski
la source
3

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 le mot de passe promtp!)

perseo22
la source
2
Pourquoi utiliser des mots de passe? Pourquoi pas des clés?
TJ Ellis
1
Facile: car vous ne pourrez peut-être pas utiliser de clés! (sshd non configuré pour les utiliser, mauvaises autorisations sur les fichiers utilisateur, etc.9
perseo22
2

En outre, tapez ceci sur la machine distante (en tant qu'utilisateur auquel vous vous connectez) pour supprimer tous les messages MOTD:

touch ~/.hushlogin

Cela ne fait pas autant de différence que la désactivation, UseDNSmais cela peut aider sur des connexions plus lentes.

Oli
la source
1
-1: Le MOTD s'affiche uniquement après une connexion réussie. Cela ne fera pas apparaître l'invite de mot de passe plus rapidement.
Asa Ayers
2
Certes, mais toujours un commentaire utile.
sebastian_k
2

Comme vous utilisez une version plutôt ancienne d'Ubuntu, il pourrait bien s'agir de ce bogue: https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/300151

Le redémarrage de dbus ( /etc/init.d/dbus restart) peut aider.

Marcel Stimberg
la source
J'ai une boîte 10.04 mise à niveau de 9.04 et 9.10. Le redémarrage de dbus est passé time ssh remoteServer datede 8 s à 0,5 s.
djeikyb