Nawiązanie połączenia SSH jest powolne [duplikat]

25

Właśnie zainstalowałem Ubuntu 11.10 i za każdym razem, gdy próbuję SSH na moich serwerach, jest to bardzo wolne. Zanim wyświetli się monit o hasło, może potrwać od 40 sekund do 60 sekund.

Używam:

ssh [email protected]

Po zalogowaniu wszystko jest w porządku i działa szybko.

Dlaczego to trwa tak długo i jak mogę to naprawić? Czy w komendzie SSH są dostępne opcje?

joel
źródło

Odpowiedzi:

44

Jest to powolne, ponieważ demon OpenSSH używa DNS do uruchomienia wyszukiwania wstecznego dla nazwy hosta klienta, aby upewnić się, że jest poprawna

sudo vi /etc/ssh/ssh_config

Skomentuj następujące wiersze

#GSSAPIAuthentication yes
#GSSAPIDelegateCredentials no

LUB

Dodaj:

UseDNS no
Księga Zeusa
źródło
6
Istnieje plik sshd_config po stronie serwera i ssh_config po stronie klienta. Ustawienie tych opcji na kliencie i serwerze w pliku ssh_config nie pomogło mi. Dopiero po ustawieniu GSSAPIAuthentication noi GSSAPIDelegateCredentials yesdodaniu UseDNS nopliku sshd_config serwera przyspieszyłem połączenie.
metakermit
1
Czy nie ma to wpływu na bezpieczeństwo?
TheStoryCoder
@TheStoryCoder dobre pytanie, źle muszę sprawdzić, wzbudziłeś teraz moją ciekawość ...
Book Of Zeus
1
Po dodaniu UseDNS nodostałem, Bad configuration option: usednsgdy próbowałem ssh zalogować się do innego serwera.
Casper
1
Spróbuj ustawić UseDNSsię now /etc/sshd_configlub /etc/ssh/sshd_config. NIE /etc/ssh_config!
Yu Jiaao,
13

To tylko uzupełnienie odpowiedzi Book Of Zeus. Jeśli nie masz dostępu do roota (sudo), możesz go skonfigurować.

Musisz edytować plik „user ssh_config”, który jest:

vi $HOME/.ssh/config

(Uwaga: musisz utworzyć katalog $ HOME / .ssh, jeśli nie istnieje)

I dodaj:

Host *
  GSSAPIAuthentication no
  GSSAPIDelegateCredentials yes

W razie potrzeby możesz to zrobić dla każdego hosta :) przykład:

Host linux-srv
  HostName 192.158.1.1
  GSSAPIAuthentication no
  GSSAPIDelegateCredentials yes

Upewnij się, że adres IP odpowiada adresowi IP twojego serwera. Jedną fajną zaletą jest to, że teraz ssh zapewni autouzupełnianie dla tego serwera. Możesz więc wpisać ssh lin+ Tabi powinien on zostać automatycznie uzupełniony ssh linux-srv.

Możesz dodać kilka przydatnych opcji, abyś nie musiał ich wpisywać za każdym razem:

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

Zamiast pisać wystarczyłoby ssh -C -p 1022 -i ~/.hidden/prv-key-4096bit [email protected]proste ssh linux-srv!

Huygens
źródło