Zoeken op website

4 manieren om SSH-verbindingen in Linux te versnellen


SSH is de populairste en veiligste methode voor het op afstand beheren van Linux-servers. Een van de uitdagingen bij serverbeheer op afstand is de verbindingssnelheid, vooral als het gaat om het creëren van sessies tussen de externe en lokale machines.

Er zijn verschillende knelpunten in dit proces. Eén scenario is wanneer u voor de eerste keer verbinding maakt met een externe server; Normaal gesproken duurt het enkele seconden om een sessie tot stand te brengen. Wanneer u echter meerdere verbindingen achter elkaar probeert te starten, veroorzaakt dit overhead (combinatie van overtollige of indirecte rekentijd, geheugen, bandbreedte of andere gerelateerde bronnen om de bewerking uit te voeren).

In dit artikel delen we vier handige tips over hoe je externe SSH-verbindingen in Linux kunt versnellen.

1. Forceer SSH-verbinding via IPV4

OpenSSH ondersteunt zowel IPv4/IP6, maar soms zijn IPv6-verbindingen langzamer. U kunt dus overwegen om ssh-verbindingen alleen via IPv4 te forceren, met behulp van de onderstaande syntaxis:

ssh -4 [email 

U kunt ook de instructie AddressFamily (specificeert de adresfamilie die moet worden gebruikt bij het verbinden) gebruiken in uw ssh-configuratiebestand /etc/ssh/ssh_config (algemene configuratie) of ~ /.ssh/config (gebruikersspecifiek bestand).

De geaccepteerde waarden zijn “any”, “inet” alleen voor IPv4, of “inet6”.

vi ~.ssh/config 

Hier is een handige startersgids voor het configureren van een gebruikersspecifiek ssh-configuratiebestand:

  1. Hoe u aangepaste SSH-verbindingen kunt configureren om externe toegang te vereenvoudigen

Bovendien kunt u op de externe machine de sshd-daemon ook instrueren om verbindingen via IPv4 te overwegen door de bovenstaande instructie in het bestand /etc/ssh/sshd_config te gebruiken.

2. Schakel DNS-zoekopdracht op externe machine uit

Standaard zoekt sshd daemon de externe hostnaam op, en controleert ook of de omgezette hostnaam voor het externe IP-adres terugverwijst naar precies hetzelfde IP-adres. Dit kan leiden tot vertragingen bij het tot stand brengen van de verbinding of het maken van sessies.

De UseDNS richtlijn regelt de bovenstaande functionaliteit; om het uit te schakelen, zoekt u het en verwijdert u het commentaar in het bestand /etc/ssh/sshd_config. Als dit niet is ingesteld, voegt u het toe met de waarde no.

UseDNS  no

3. Gebruik de SSH-verbinding opnieuw

Een ssh-clientprogramma wordt gebruikt om verbindingen tot stand te brengen met een sshd-daemon die externe verbindingen accepteert. U kunt een reeds tot stand gebrachte verbinding hergebruiken bij het maken van een nieuwe ssh-sessie en dit kan volgende sessies aanzienlijk versnellen.

U kunt dit inschakelen in uw ~/.ssh/config bestand.

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

De bovenstaande configuratie (Host *) maakt hergebruik van verbindingen mogelijk voor alle externe servers waarmee u verbinding maakt met behulp van deze richtlijnen:

  • ControlMaster – maakt het delen van meerdere sessies via één netwerkverbinding mogelijk.
  • ControlPath – definieert een pad naar de controle-socket die wordt gebruikt voor het delen van verbindingen.
  • ControlPersist – indien gebruikt samen met ControlMaster, vertelt ssh om de masterverbinding op de achtergrond open te houden (wachtend op toekomstige clientverbindingen) zodra de initiële clientverbinding is gesloten.

U kunt dit inschakelen voor verbindingen met een specifieke externe server, bijvoorbeeld:

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

Op deze manier heeft u alleen last van de verbindingsoverhead voor de eerste verbinding en zullen alle volgende verbindingen veel sneller zijn.

4. Gebruik een specifieke SSH-authenticatiemethode

Een andere manier om ssh-verbindingen te versnellen is door een bepaalde authenticatiemethode te gebruiken voor alle ssh-verbindingen, en hier raden we aan om ssh wachtwoordloos inloggen te configureren met behulp van ssh keygen in 5 eenvoudige stappen.

Zodra dat is gebeurd, gebruikt u de PreferredAuthentications richtlijn, in de ssh_config bestanden (algemeen of gebruikersspecifiek) hierboven. Deze richtlijn definieert de volgorde waarin de client authenticatiemethoden moet proberen (u kunt een door opdrachten gescheiden lijst opgeven om meer dan één methode te gebruiken).

PreferredAuthentications=publickey 

Gebruik eventueel onderstaande syntaxis vanaf de opdrachtregel.

ssh -o "PreferredAuthentications=publickey" [email 

Als u de voorkeur geeft aan wachtwoordauthenticatie die als onveilig wordt beschouwd, gebruik deze dan.

ssh -o "PreferredAuthentications=password" [email 

Ten slotte moet u uw sshd-daemon opnieuw opstarten nadat u alle bovenstaande wijzigingen heeft aangebracht.

systemctl restart sshd	#Systemd
service sshd restart 		#SysVInit

Voor meer informatie over de hier gebruikte richtlijnen, zie de manpagina's ssh_config en sshd_config.

man ssh_config
man sshd_config 

Bekijk ook deze handige handleidingen voor het beveiligen van ssh op Linux-systemen:

  1. 5 beste praktijken om de SSH-server te beveiligen en te beschermen
  2. Hoe u inactieve of inactieve SSH-verbindingen in Linux kunt verbreken

Dat is het voor nu! Heeft u tips/trucs om SSH-verbindingen te versnellen? Wij horen graag andere manieren om dit te doen. Gebruik het onderstaande reactieformulier om het met ons te delen.