SSH è lento per stabilire una connessione [duplicato]


25

Ho appena installato Ubuntu 11.10 e ogni volta che provo a SSH nei miei server è molto lento. Prima che venga visualizzata la richiesta della password, possono essere necessari da 40 a 60 secondi.

Io uso:

ssh myuser@myserver.com

Una volta effettuato l'accesso, va tutto bene e funziona velocemente.

Perché ci vuole così tanto tempo e come posso ripararlo? Ci sono opzioni nel comando SSH che posso usare?

Risposte:


44

Questo è lento perché il demone OpenSSH utilizza DNS per eseguire una ricerca inversa sul nome host del client per assicurarsi che sia valido

sudo vi /etc/ssh/ssh_config

Commenta le seguenti righe

#GSSAPIAuthentication yes
#GSSAPIDelegateCredentials no

O

Aggiungi questo:

UseDNS no

6
Esiste un file sshd_config per il lato server e ssh_config per il lato client. L'impostazione di queste opzioni sul client e sul server nel file ssh_config non mi ha aiutato. Solo dopo aver impostato GSSAPIAuthentication noe GSSAPIDelegateCredentials yesaggiunto UseDNS noil file sshd_config del server ha velocizzato la connessione per me.
metakermit,

1
Non ci sono implicazioni di sicurezza nel fare questo?
TheStoryCoder

@TheStoryCoder bella domanda, devo ricontrollare, hai innescato la mia curiosità ora ...
Book Of Zeus

1
Dopo aver aggiunto UseDNS no, ho avuto Bad configuration option: usednsquando ho provato a ssh accedere a un altro server.
Casper,

1
Prova a impostare UseDNSsu noin /etc/sshd_configo /etc/ssh/sshd_config. NON /etc/ssh_config!
Yu Jiaao,

13

Questo è solo un complemento della risposta del Libro di Zeus. Nel caso in cui non si disponga dell'accesso root (sudo), è comunque possibile configurarlo.

Devi modificare il tuo file "user ssh_config" che è:

vi $HOME/.ssh/config

(Nota: è necessario creare la directory $ HOME / .ssh se non esiste)

E aggiungi:

Host *
  GSSAPIAuthentication no
  GSSAPIDelegateCredentials yes

È possibile farlo su base host se richiesto :) esempio:

Host linux-srv
  HostName 192.158.1.1
  GSSAPIAuthentication no
  GSSAPIDelegateCredentials yes

Assicurarsi che l'indirizzo IP corrisponda all'IP del server. Un grande vantaggio è che ora ssh fornirà il completamento automatico per questo server. Quindi puoi digitare ssh lin+ Tabe dovrebbe essere completato automaticamente ssh linux-srv.

Puoi aggiungere un sacco di opzioni utili in modo da non doverle digitare ogni volta:

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

Quindi invece di digitare ssh -C -p 1022 -i ~/.hidden/prv-key-4096bit superuser@192.158.1.1un semplice ssh linux-srvsarebbe sufficiente!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.