4 sposoby przyspieszenia połączeń SSH w Linux
- 2323
- 101
- Igor Madej
Ssh jest najbardziej popularną i bezpieczną metodą zdalnego zarządzania serwerami Linux. Jednym z wyzwań związanych z zarządzaniem zdalnym serwerem są prędkości połączenia, szczególnie jeśli chodzi o tworzenie sesji między maszynami zdalnymi i lokalnymi.
Istnieje kilka wąskich gardeł w tym procesie, jednym z scenariusza jest po raz pierwszy łączenie się z serwerem zdalnym; Zwykle ustanowienie sesji zajmuje kilka sekund. Jednak gdy próbujesz rozpocząć wiele połączeń z rzędem, powoduje to ogólne narzut (kombinacja nadmiaru lub pośrednim czasu obliczeń, pamięci, przepustowości lub innych powiązanych zasobów do przeprowadzenia operacji).
W tym artykule podzielimy się czterema przydatnymi wskazówkami na temat przyspieszenia zdalnych połączeń SSH w Linux.
1. Połączenie SSH przez IPv4
OpenSsh obsługuje zarówno IPv4/IP6, ale czasami IPv6 Połączenia są zwykle wolniejsze. Możesz więc rozważyć wymuszanie połączeń SSH tylko przez IPv4, używając składni poniżej:
# ssh -4 [chroniony e -mail]
Alternatywnie użyj Adressfamily (Określa rodzinę adresu do użycia podczas łączenia) Dyrektywa w pliku konfiguracyjnym SSH /etc/ssh/ssh_config (konfiguracja globalna) lub ~/.ssh/config (Plik specyficzny dla użytkownika).
Zaakceptowane wartości to „każdy”,„inet”Tylko dla IPv4 lub„ ”INET6".
$ vi ~.ssh/configWyłącz połączenia SSH na IPv6
Oto przydatny podręcznik startowy na konfigurowanie pliku konfiguracyjnego SSH specyficznego dla użytkownika:
- Jak skonfigurować niestandardowe połączenia SSH w celu uproszczenia dostępu zdalnego
Dodatkowo na zdalnej maszynie możesz również poinstruować demona SSHD, aby rozważył połączenia przez IPv4 za pomocą powyższej dyrektywy w /etc/ssh/sshd_config plik.
2. Wyłącz wyszukiwanie DNS na zdalnej maszynie
Domyślnie Demon SSHD wyszukuje zdalną nazwę hosta, a także sprawdza, czy nazwa rozstrzygnięta hosta zdalnego adresu IP mapy z powrotem do tego samego adresu IP. Może to spowodować opóźnienia w tworzeniu połączeń lub tworzenia sesji.
Używane Dyrektywa kontroluje powyższą funkcjonalność; Aby to wyłączyć, przeszukaj i pocukaj w /etc/ssh/sshd_config plik. Jeśli nie jest ustawiony, dodaj go z wartością NIE
.
Używane nrWyłącz wyszukiwanie SSH DNS
3. Ponowne wykorzystanie połączenia SSH
Program klienta SSH służy do ustanowienia połączeń z demonem SSHD akceptującym zdalne połączenia. Podczas tworzenia nowej sesji SSH możesz ponownie użyć już ustanowionego połączenia, co może znacznie przyspieszyć kolejne sesje.
Możesz to włączyć w swoim ~/.ssh/config plik.
Host * ControlMaster Auto Controlpath ~/.SSH/Sockets/%[chroniony e-mail]%H-%P Controlpersist 600
Powyższa konfiguracja (Gospodarz *) Włączy ponowne użycie połączenia dla wszystkich zdalnych serwerów, z którymi łączysz się za pomocą tych dyrektyw:
- Controlmaster - umożliwia udostępnianie wielu sesji przez jedno połączenie sieciowe.
- Controlpath - definiuje ścieżkę do gniazda kontrolnego używanego do udostępniania połączeń.
- ControlPersist - Jeśli używane razem z Controlmaster, mówi SSH, aby utrzymywał otwarte połączenie główne w tle (czekając na przyszłe połączenia klientów) po zamknięciu początkowego połączenia klienta.
Możesz na przykład włączyć to dla połączeń z określonym serwerem zdalnym:
Host Server1 nazwa hosta www.przykład.com IdentityFile ~/.SSH/WebServer.PEM Użytkownik nazwa użytkownika_here ControlMaster Auto Controlpath ~/.SSH/Sockets/%[chroniony e-mail]%H-%P Controlpersist 600
W ten sposób cierpisz tylko na obciążenie połączenia dla pierwszego połączenia, a wszystkie kolejne połączenia będą znacznie szybsze.
4. Użyj określonej metody uwierzytelniania SSH
Innym sposobem przyspieszenia połączeń SSH jest użycie danej metody uwierzytelniania dla wszystkich połączeń SSH, a tutaj zalecamy konfigurację logowania bez hasła SSH za pomocą ssh keygen w 5 prostych krokach.
Gdy to zrobisz, użyj PreferReAuthentationsations dyrektywa, wewnątrz ssh_config pliki (globalne lub specyficzne dla użytkownika) powyżej. Niniejsza dyrektywa określa kolejność, w której klient powinien wypróbować metody uwierzytelniania (możesz określić listę oddzieloną polecenia, aby użyć więcej niż jednej metody).
PREPREDERAUTHESTACJA = publickeyMetoda uwierzytelniania SSH
Opcjonalnie użyj tej składni poniżej z wiersza poleceń.
# ssh -o „preferReReAuthentations = publickey” [e -mail chroniony]
Jeśli wolisz uwierzytelnianie hasła, które jest uważane za niezabezpieczone, użyj tego.
# ssh -o „preferReReuthentations = hasło” [e -mail chroniony]
Na koniec musisz ponownie uruchomić demon SSHD po wprowadzeniu wszystkich powyższych zmian.
# Systemctl restart sshd #systemd # Service Sshd restart #sysvinit
Aby uzyskać więcej informacji na temat używanych tutaj dyrektyw, zobacz ssh_config I sshd_config Strony człowieka.
# man ssh_config # man sshd_config
Sprawdź także te przydatne przewodniki do zabezpieczenia SSH w systemach Linux:
- 5 najlepszych praktyk w celu zabezpieczenia i ochrony serwera SSH
- Jak odłączyć nieaktywne lub bezczynne połączenia SSH w Linux
To wszystko na teraz! Czy masz jakieś wskazówki/wskazówki dotyczące przyspieszenia połączeń SSH. Chcielibyśmy usłyszeć o innych sposobach robienia tego. Użyj poniższego formularza komentarza, aby podzielić się z nami.
- « Jak zainstalować koszyk na zakupy X w Linux
- Skrypt powłoki do wysyłania alertu e -mail, gdy pamięć się niska »