SSH est lent à établir une connexion [en double]

25

Je viens d'installer Ubuntu 11.10, et chaque fois que j'essaie de SSH sur mes serveurs, c'est très lent. Avant d'afficher l'invite de mot de passe, cela peut prendre entre 40 et 60 secondes.

J'utilise:

ssh [email protected]

Une fois connecté, tout va bien et cela fonctionne rapidement.

Pourquoi cela prend-il si longtemps et comment puis-je le réparer? Y a-t-il des options dans la commande SSH que je peux utiliser?

joel
la source

Réponses:

44

Ceci est lent car le démon OpenSSH utilise DNS pour exécuter une recherche inversée sur le nom d'hôte du client pour s'assurer qu'il est valide

sudo vi /etc/ssh/ssh_config

Commentez les lignes suivantes

#GSSAPIAuthentication yes
#GSSAPIDelegateCredentials no

OU

Ajoute ça:

UseDNS no
Livre de Zeus
la source
6
Il existe un fichier sshd_config pour le côté serveur et ssh_config pour le côté client. La définition de ces options sur le client et le serveur dans le fichier ssh_config ne m'a pas aidé. Ce n'est qu'après avoir défini GSSAPIAuthentication noet GSSAPIDelegateCredentials yesajouté UseDNS nole fichier sshd_config du serveur que la connexion a été accélérée pour moi.
metakermit
1
N'y a-t-il aucune implication de sécurité de faire cela?
TheStoryCoder
@TheStoryCoder bonne question, je vais devoir vérifier, vous avez déclenché ma curiosité maintenant ...
Book Of Zeus
1
Après l'ajout UseDNS no, je l'ai obtenu Bad configuration option: usednslorsque j'ai essayé de me connecter à un autre serveur.
Casper
1
Essayez de régler UseDNSà nodans /etc/sshd_configou /etc/ssh/sshd_config. NON /etc/ssh_config!
Yu Jiaao
13

Ce n'est qu'un complément de la réponse de Book Of Zeus. Si vous ne disposez pas d'un accès root (sudo), vous pouvez toujours le configurer.

Vous devez éditer votre fichier "user ssh_config" qui est:

vi $HOME/.ssh/config

(Remarque: vous devrez créer le répertoire $ HOME / .ssh s'il n'existe pas)

Et ajouter:

Host *
  GSSAPIAuthentication no
  GSSAPIDelegateCredentials yes

Vous pouvez le faire sur une base par hôte si nécessaire :) exemple:

Host linux-srv
  HostName 192.158.1.1
  GSSAPIAuthentication no
  GSSAPIDelegateCredentials yes

Assurez-vous que l'adresse IP correspond à l'adresse IP de votre serveur. Un avantage intéressant est que maintenant ssh fournira la saisie semi-automatique pour ce serveur. Vous pouvez donc taper ssh lin+ Tabet il devrait se compléter automatiquement ssh linux-srv.

Vous pouvez ajouter un tas d'options utiles pour ne pas avoir à les saisir à chaque fois:

User <a user>
Port <a port number>
IdentityFile <a specific private key>
Compression yes
....

Donc au lieu de taper ssh -C -p 1022 -i ~/.hidden/prv-key-4096bit [email protected]un simple ssh linux-srvsuffirait!

Huygens
la source