SSH is een van de meest gebruikte tools door ons én door de meeste ontwikkelaars. In deze blog delen we een aantal tips die SSH zowel veiliger als efficiënter maken. Deze tips zijn niet alleen toepasbaar op onze high performance webservers, maar ook op je eigen interne servers. We gaan ervan uit dat je een recente versie van OpenSSH (zowel client als server) gebruikt. In de voorbeelden gebruiken we "d-example.host-ed.eu" als serveradres. Vervang dit door je eigen serveradres.
Wat is SSH?
SSH staat voor Secure Shell en stelt je in staat om op een veilige, versleutelde manier in te loggen op een andere computer of server op afstand. Hiermee kun je werken op de machine waarop je bent ingelogd en veilig data uitwisselen. Doordat de verbinding versleuteld is, kunnen kwaadwillenden je wachtwoorden niet zomaar onderscheppen.
Hoe gebruik je SSH?
SSH maakt veilige communicatie tussen computers of servers mogelijk. Om SSH te gebruiken, download je eerst een SSH-client, waarmee je een SSH-key kunt genereren. Daarna kun je verbinding maken met andere servers, mits je hostingpartij SSH ondersteunt. Bij LinQhost helpen we je graag met de installatie van SSH, dus neem gerust contact op voor meer info.
Tips voor een betere SSH-ervaring
Tip 1: MySQL-server extern aanroepen via SSH
Wil je vanaf een externe locatie toegang krijgen tot je database zonder de beveiliging in gevaar te brengen? Een simpele en veilige oplossing is het opzetten van een MySQL-tunnel via een SSH-verbinding. Voer op je lokale machine het volgende commando in:
ssh -L 3307:127.0.0.1:3306 je_gebruiker@d-example.host-ed.eu -p 22622
Dit commando zorgt ervoor dat je lokaal kunt verbinden met de MySQL-server via poort 3307, terwijl de SSH-tunnel de communicatie veilig maakt.
Tip 2: Verbeter de encryptie van je OpenSSH-server
De standaardconfiguratie van OpenSSH is vaak vrij soepel, wat betekent dat verouderde algoritmes zoals SHA1 nog worden toegestaan. SHA1 wordt als
onveilig bestempeld en wilt u dus niet gebruiken. Om je beveiliging te verbeteren, pas je de configuratie aan door de volgende regels toe te voegen in het sshd_config-bestand:
KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha256
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,umac-128@openssh.com
Vergeet niet je OpenSSH-server opnieuw te starten na het doorvoeren van deze wijzigingen!
Het resultaat zou er dan ongeveer zo uit moeten komen te zien:
Tip 3: Gebruik ECDSA voor betere prestaties
Traditioneel wordt SSH-RSA gebruikt voor het opzetten van beveiligde verbindingen, maar dit vereist veel rekenkracht, vooral bij sleutels van 4096 bits. Een alternatief is het gebruik van ECDSA, een key type dat met minder bits dezelfde beveiliging biedt. Je kunt een ECDSA-key genereren met het volgende commando:
ssh-keygen -t ecdsa -b 521
Dit zorgt voor snellere verbindingen en betere prestaties, vooral als je gebruikmaakt van recente SSH-clients.
Tip 4: Zet compressie aan voor snellere verbindingen
Veel mensen vergeten dat je de dataverbinding kunt versnellen door compressie in te schakelen tijdens je SSH-sessie. Dit is vooral handig op trage verbindingen. Voeg de -C parameter toe aan je SSH-commando om compressie in te schakelen:
ssh -C d-example.host-ed.eu -p 22622
Wil je compressie standaard activeren? Voeg dan de regel Compression yes toe aan je SSH-configuratiebestand (~/.ssh/config).