Jak przyspieszyć logowanie SSH?


23

Spoza mojego domu, za każdym razem, gdy loguję się do mojego serwera Ubuntu za pomocą SSH, otrzymywanie monitu o hasło zajmuje około 6 sekund, jednak po zalogowaniu się na moim serwerze hostingowym zajmuje to około 1 sekundy. Co mogę zrobić, aby to przyspieszyć?

$ 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

Odpowiedzi:


38

Głównym powodem, dla którego to widziałem, jest opcja konfiguracji w SSHD. UseDNSTa opcja (domyślnie włączona) powoduje, że serwer wykonuje rozpoznawanie DNS na przychodzących żądaniach. Czasochłonna operacja. Widziałem logowanie trwające od jednej minuty plus oczekiwanie na monit o podanie hasła poniżej kilku sekund. Jeśli edytujesz /etc/ssh/sshd_configna serwerze i dodajesz (jeśli go nie ma) na dole, UseDNS nozrestartuj demona SSH, przy service ssh restartnastępnym połączeniu powinieneś zobaczyć poprawę.


6
Lepiej naprawić konfigurację DNS.
Thorbjørn Ravn Andersen

To zadziałało świetnie !! Dzięki! Czas logowania skrócił się z 20-30 sekund do mniej niż 5 sekund :)
AntonioCS

3
Jakie są korzyści z UseDNSwłączenia?
ændrük

Być świadomym! kiedy ustawisz dyrektywę UserDNSpo Matchdyrektywie, pojawi się błąd: is not allowed within a Matchzablokuj, jeśli zrestartujesz sshd, nie będziesz mógł ssh na swoim serwerze. Popełniłem ten błąd i zostałem zablokowany na moim serwerze. Zawsze pamiętaj, aby nie dodawać żadnej dyrektywy na dole, sshd_configjeśli masz Matchw niej dyrektywę.
Adriano Rosa

6

Dla mnie powodem numer 2 (po opcji UseDNS po stronie serwera) dla długich loginów sesji SSH są próby połączenia przez klienta przy użyciu IPv6 (co oczywiście nie jest poprawnie skonfigurowane w mojej sieci - lub prawie w żadnej innej sieci, z tego powodu).

Zobacz HOWTO: Przyspieszenie logowania SSH na forach Ubuntu.

„Rozwiązaniem” jest włączenie tylko IPv4:

1) albo dla danego wywołania klienta SSH:

ssh -4 login@hostname

2) lub globalnie w konfiguracji klienta ssh w /etc/ssh/ssh_config:

Host *
   AddressFamily inet

Oczywiście poprawniejsze byłoby prawidłowe skonfigurowanie IPv6 w sieci, ale kto ma na to czas :)


3

Spróbuj dodać następną opcję za pomocą polecenia ssh:

-o "PreferredAuthentications=password"

(zapobiega to negocjowaniu przez ssh jakiejkolwiek innej metody uwierzytelniania i przyspiesza hasło promtp!)


2
Po co w ogóle używać haseł? Dlaczego nie klucze?
TJ Ellis,

1
Łatwo: ponieważ możesz nie pozwolić na używanie kluczy! (sshd nie jest skonfigurowany do ich używania, złe uprawnienia do plików użytkownika itp. 9
perseo22

2

Dodatkowo wpisz to na zdalnym komputerze (jako użytkownik, z którego się zalogujesz), aby ukryć wszelkie komunikaty MOTD:

touch ~/.hushlogin

Nie robi tak dużej różnicy jak wyłączenie, UseDNSale może pomóc w wolniejszych połączeniach.


1
-1: MOTD wyświetla się dopiero po pomyślnym zalogowaniu. Nie spowoduje to, że monit o hasło pojawi się szybciej.
Asa Ayers,

2
To prawda, ale wciąż przydatny komentarz.
sebastian_k

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.