4 moduri de a accelera conexiunile SSH în Linux


SSH este cea mai populară și sigură metodă de gestionare a serverelor Linux de la distanță. Una dintre provocările legate de managementul serverului la distanță este viteza de conectare, mai ales când vine vorba de crearea de sesiuni între mașinile de la distanță și cele locale.

Există mai multe blocaje în acest proces, un scenariu este atunci când vă conectați la un server la distanță pentru prima dată; în mod normal, durează câteva secunde pentru a stabili o sesiune. Cu toate acestea, atunci când încercați să porniți mai multe conexiuni în succesiune, acest lucru determină o suprasarcină (combinație de timp de calcul în exces sau indirect, memorie, lățime de bandă sau alte resurse asociate pentru a efectua operația).

În acest articol, vom împărtăși patru sfaturi utile despre cum să accelerați conexiunile SSH la distanță în Linux.

1. Forțați conexiunea SSH prin IPV4

OpenSSH acceptă atât IPv4/IP6, dar uneori conexiunile IPv6 tind să fie mai lente. Deci, puteți lua în considerare forțarea conexiunilor ssh numai prin IPv4, folosind sintaxa de mai jos:

# ssh -4 

Ca alternativă, utilizați directiva AddressFamily (specifică familia de adrese de utilizat la conectare) în fișierul de configurare ssh /etc/ssh/ssh_config (configurație globală) sau ~ /.ssh/config (fișier specific utilizatorului).

Valorile acceptate sunt „orice”, „inet” numai pentru IPv4 sau „inet6”.

$ vi ~.ssh/config 

Iată un ghid de pornire util despre configurarea fișierului de configurare ssh specific utilizatorului:

  1. Cum să configurați conexiunile SSH personalizate pentru a simplifica accesul la distanță

În plus, pe mașina de la distanță, puteți, de asemenea, să instruiți demonul sshd să ia în considerare conexiunile prin IPv4 utilizând directiva de mai sus din fișierul /etc/ssh/sshd_config.

2. Dezactivați căutarea DNS pe mașina de la distanță

În mod implicit, demonul sshd caută numele gazdei de la distanță și, de asemenea, verifică dacă numele de gazdă rezolvat pentru adresa IP la distanță se mapează înapoi la aceeași adresă IP. Acest lucru poate duce la întârzieri în stabilirea conexiunii sau crearea sesiunii.

Directiva UseDNS controlează funcționalitatea de mai sus; pentru a-l dezactiva, căutați și decomentați-l în fișierul /etc/ssh/sshd_config. Dacă nu este setat, adăugați-l cu valoarea no.

UseDNS  no

3. Reutilizați conexiunea SSH

Un program client ssh este utilizat pentru a stabili conexiuni la un demon sshd care acceptă conexiuni la distanță. Puteți reutiliza o conexiune deja stabilită atunci când creați o nouă sesiune ssh și acest lucru poate accelera semnificativ sesiunile ulterioare.

Puteți activa acest lucru în fișierul dvs. ~/.ssh/config.

Host *
	ControlMaster auto
	ControlPath  ~/.ssh/sockets/%%h-%p
	ControlPersist 600

Configurația de mai sus (Gazdă *) va permite reutilizarea conexiunii pentru toate serverele la distanță la care vă conectați folosind aceste directive:

  • ControlMaster – permite partajarea mai multor sesiuni printr-o singură conexiune la rețea.
  • ControlPath – definește o cale către soclul de control utilizat pentru partajarea conexiunii.
  • ControlPersist – dacă este utilizat împreună cu ControlMaster, îi spune lui ssh să mențină conexiunea principală deschisă în fundal (în așteptarea conexiunilor viitoare cu client) odată ce conexiunea client inițială a fost închis.

Puteți activa acest lucru pentru conexiunile la un anumit server la distanță, de exemplu:

Host server1
	HostName   www.example.com
	IdentityFile  ~/.ssh/webserver.pem
      	User username_here
	ControlMaster auto
	ControlPath  ~/.ssh/sockets/%%h-%p
	ControlPersist  600

În acest fel, suferiți doar supraîncărcarea conexiunii pentru prima conexiune, iar toate conexiunile ulterioare vor fi mult mai rapide.

4. Utilizați o metodă de autentificare SSH specifică

O altă modalitate de a accelera conexiunile ssh este utilizarea unei anumite metode de autentificare pentru toate conexiunile ssh, iar aici vă recomandăm să configurați autentificarea ssh fără parolă folosind ssh keygen în 5 pași simpli.

După ce ați făcut acest lucru, utilizați directiva PreferredAuthentications din fișierele ssh_config (la nivel global sau specific utilizatorului) de mai sus. Această directivă definește ordinea în care clientul ar trebui să încerce metodele de autentificare (puteți specifica o listă separată de comenzi pentru a utiliza mai multe metode).

PreferredAuthentications=publickey 

Opțional, utilizați această sintaxă de mai jos din linia de comandă.

# ssh -o "PreferredAuthentications=publickey" 

Dacă preferați autentificarea cu parolă care este considerată nesigură, utilizați aceasta.

# ssh -o "PreferredAuthentications=password" 

În cele din urmă, trebuie să reporniți demonul sshd după ce ați făcut toate modificările de mai sus.

# systemctl restart sshd	#Systemd
# service sshd restart 		#SysVInit

Pentru mai multe informații despre directivele utilizate aici, consultați paginile de manual ssh_config și sshd_config.

# man ssh_config
# man sshd_config 

Consultați și aceste ghiduri utile pentru securizarea ssh pe sistemele Linux:

  1. 5 Cele mai bune practici pentru a securiza și proteja serverul SSH
  2. Cum să deconectați conexiunile SSH inactive sau inactive în Linux

Asta este tot pentru acum! Aveți ceva sfaturi/trucuri pentru accelerarea conexiunilor SSH. Ne-ar plăcea să auzim despre alte moduri de a face acest lucru. Folosește formularul de comentarii de mai jos pentru a ne împărtăși.