SSH gebruiken op Ubuntu! Een uitgebreide gids voor verbinding, poortwijzigingen en authenticatie met openbare sleutel

目次

1. Introductie

Door SSH op Ubuntu te gebruiken, kun je veilig je server of pc op afstand en beheren. Deze gids legt alles uit, van de basis van SSH tot het installeren van een SSH-server op Ubuntu, beveiligingsmaatregelen en probleemoplossing. Hij is ontworpen voor beginners en gemakkelijk te begrijpen.

Wat is SSH?

SSH (Secure Shell) is een protocol dat veilige externe verbindingen over een netwerk mogelijk maakt. In tegenstelling tot traditionele Telnet of FTP versleutelt SSH gegevens, waardoor het risico op afluisteren en manipulatie aanzienlijk wordt verminderd.

Belangrijkste gebruikssituaties van SSH op Ubuntu

SSH wordt op Ubuntu meestal gebruikt voor de volgende doeleinden:

  • Beheer op afstand van server : Beheer een Ubuntu-server vanaf een externe locatie.
  • Bestandsoverdracht : Veilige bestandsoverdracht met SCP of SFTP.
  • Port Forwarding : Een beveiligde externe verbinding tot stand brengen.

Wat je in deze gids zult leren

  • Basisconcepten en werking van SSH
  • Hoe je een SSH-server op Ubuntu installeert
  • SSH-verbindinginstellingen en probleemoplossing
  • Beveiligingsmaatregelen voor SSH
年収訴求

2. Basisconcepten van SSH

Om SSH effectief te gebruiken, is het belangrijk de basisconcepten te begrijpen. Deze sectie legt uit hoe SSH werkt en de verschillende authenticatiemethoden.

Hoe SSH werkt

SSH is een protocol dat een beveiligde verbinding tot stand brengt tussen een client en een server. Standaard gebruikt het TCP‑poort 22 voor versleutelde communicatie.

Belangrijkste functies

  • Remote login : Voer commando’s uit op een server.
  • Bestandsoverdracht : Verstuur gegevens veilig met SCP of SFTP.
  • Port forwarding : Verbind met andere diensten via SSH.

SSH-authenticatiemethoden

SSH ondersteunt voornamelijk twee authenticatiemethoden:

Wachtwoordauthenticatie

  • Inloggen met een gebruikersnaam en wachtwoord.
  • Gemakkelijk in gebruik, maar kwetsbaar voor brute‑force aanvallen.

Publieke‑sleutel authenticatie

  • Authenticatie met een publiek‑privé sleutelpaar.
  • Veiliger en aanbevolen boven wachtwoordauthenticatie.

Voordelen van SSH

  • Gegevensversleuteling : Beschermt communicatie tegen onderschepping.
  • Eenvoudig beheer op afstand : Toegankelijk vanaf overal.
  • Verbeterde beveiliging : Helpt ongeautoriseerde toegang te voorkomen.

3. Een SSH-server installeren op Ubuntu

Om SSH op Ubuntu te gebruiken, moet je de OpenSSH-server installeren. Deze sectie legt de installatie stappen en basisconfiguratie uit.

OpenSSH-server installeren

Je kunt de OpenSSH-server op Ubuntu installeren met het volgende commando:

sudo apt update
sudo apt install openssh-server

Controleer na de installatie of de SSH-service draait:

sudo systemctl status ssh

De SSH-service starten en controleren

Om de SSH-service handmatig te starten of te stoppen, gebruik je de volgende commando’s:

# Start SSH
sudo systemctl start ssh

# Enable SSH to start automatically on reboot
sudo systemctl enable ssh

# Stop SSH
sudo systemctl stop ssh

UFW (Uncomplicated Firewall) configureren

Als UFW standaard is ingeschakeld, kunnen SSH-verbindingen geblokkeerd worden. Sta SSH-toegang toe door het volgende uit te voeren:

sudo ufw allow ssh
sudo ufw enable

4. SSH-verbindingen configureren

Om SSH veilig te gebruiken, is een juiste configuratie essentieel. Deze sectie legt uit hoe je publieke‑sleutel authenticatie instelt.

Een sleutelpaar genereren

Voer aan de client‑kant het volgende commando uit om een publiek‑ en privésleutelpaar te maken:

ssh-keygen -t rsa -b 4096

Standaard wordt de privésleutel opgeslagen in /.ssh/id_rsa en de publieke sleutel in ~/.ssh/id_rsa.pub.

De publieke sleutel naar de server kopiëren

Verzend de gegenereerde publieke sleutel naar de SSH-server:

ssh-copy-id username@server-ip

Alternatief kun je de sleutel handmatig kopiëren met SCP:

scp ~/.ssh/id_rsa.pub username@server-ip:~/

Verplaats op de server de publieke sleutel naar de juiste map:

mkdir -p ~/.ssh
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
rm ~/id_rsa.pub

Het sshd_config‑bestand bewerken

Verbeter de beveiliging door het SSH-configuratiebestand aan te passen:

sudo nano /etc/ssh/sshd_config

Werk de volgende instellingen bij:

# Disable password authentication (enable public key authentication only)
PasswordAuthentication no

# Disable root login
PermitRootLogin no

# Change the default SSH port (example: 2222)
Port 2222

Start na het aanbrengen van wijzigingen de SSH-service opnieuw:

sudo systemctl restart ssh

5. Verbinden met een SSH-server

Zodra de SSH-server is ingesteld, moet u verbinding maken vanaf een clientmachine. Dit gedeelte legt de basis SSH-verbindingsmethoden en het omgaan met poortwijzigingen uit.

Basis SSH-verbindingsopdracht

Om verbinding te maken met een SSH-server vanaf een client, gebruik:

ssh username@server-ip

Bijvoorbeeld, als het IP-adres van de server 192.168.1.10 is en de gebruikersnaam ubuntu, voer dan in:

ssh ubuntu@192.168.1.10

Bij de eerste verbinding ziet u een vingerafdrukverificatieprompt. Typ “yes” om te accepteren en door te gaan.

Verbinden met een aangepaste poort

Als de standaardpoort (22) is gewijzigd, specificeer dan de poort met de optie -p:

ssh -p 2222 ubuntu@192.168.1.10

Verbinden met een privé sleutel

Bij gebruik van openbare sleutelauthenticatie specificeert u de privésleutel met de optie -i:

ssh -i ~/.ssh/id_rsa ubuntu@192.168.1.10

Uitvoeren van externe opdrachten via SSH

U kunt externe opdrachten uitvoeren zonder interactief in te loggen op de server:

ssh ubuntu@192.168.1.10 "ls -lah /home/ubuntu"

Dit is handig voor automatisering en extern beheer.

Bestanden overzetten met SCP

Gebruik SSH om bestanden over te zetten tussen een lokale pc en een externe server.

Van lokaal naar extern

scp filename username@server-ip:/remote/directory

Voorbeeld:

scp myfile.txt ubuntu@192.168.1.10:/home/ubuntu/

Van extern naar lokaal

scp username@server-ip:/remote/file ./local/directory

Voorbeeld:

scp ubuntu@192.168.1.10:/home/ubuntu/myfile.txt ./

Bestanden beheren met SFTP

Gebruik SFTP voor bestandsbeheer over SSH:

sftp ubuntu@192.168.1.10

Zodra verbonden, kunt u opdrachten gebruiken zoals:

ls        # List files
cd        # Change directory
put file  # Upload file from local to remote
get file  # Download file from remote to local
exit      # Exit SFTP session

6. Problemen met SSH-verbindingen oplossen

Problemen met SSH-verbindingen komen vaak voor. Dit gedeelte behandelt typische problemen en hun oplossingen.

Veelvoorkomende SSH-verbindingsfouten en oplossingen

Als SSH niet kan verbinden, overweeg dan de volgende oorzaken:

1. SSH-server draait niet

Controleer of de SSH-server actief is:

sudo systemctl status ssh

Oplossing:

  • Als de server niet draait, start deze dan met:
sudo systemctl start ssh
  • Zorg ervoor dat SSH automatisch start bij herstart:
sudo systemctl enable ssh

2. Firewall (UFW) blokkeert SSH

Als UFW (Uncomplicated Firewall) is ingeschakeld, blokkeert het mogelijk de toegang tot SSH.

Oplossing:

  • Controleer de huidige UFW-instellingen:
sudo ufw status
  • Sta SSH-verbindingen toe:
sudo ufw allow ssh

(Als u een aangepaste poort gebruikt, voer sudo ufw allow <port> uit)

  • Herstart UFW:
sudo ufw reload

3. SSH-poortnummer is gewijzigd

Als SSH op een andere poort draait, zorg er dan voor dat u de juiste poort specificeert bij het verbinden.

Oplossing:

  • Controleer de geconfigureerde SSH-poort:
sudo grep Port /etc/ssh/sshd_config
  • Gebruik de juiste poort bij het verbinden:
ssh -p 2222 username@server-ip

4. Onjuiste SSH-sleuteltoestemmingen

Onjuiste bestandstoestemmingen voor SSH-sleutels kunnen leiden tot authenticatiefouten.

Oplossing:

  • Zorg ervoor dat de privésleutel de juiste toestemmingen heeft:
chmod 600 ~/.ssh/id_rsa
  • Zorg ervoor dat het geautoriseerde sleutelsbestand correct is ingesteld:
chmod 644 ~/.ssh/authorized_keys

5. SSH-logs controleren

Om SSH-problemen te diagnosticeren, controleer de logs:

sudo journalctl -u ssh --no-pager | tail -n 20

Voor real-time logbewaking:

sudo tail -f /var/log/auth.log

7. SSH-beveiliging verbeteren

SSH is een krachtig hulpmiddel voor externe toegang, maar zonder de juiste beveiligingsmaatregelen kan het een doelwit worden voor ongeautoriseerde toegang en brute‑force‑aanvallen. Deze sectie legt aanbevolen configuraties uit om de SSH‑beveiliging te verbeteren.

1. Sch wachtwoordauthenticatie uit en gebruik authenticatie met openbare sleutel

Standaard staat SSH wachtwoordauthenticatie toe, wat het risico op brute‑force‑aanvallen vergroot. Overschakelen naar authenticatie met een openbare sleutel verbetert de beveiliging.

Stappen

  1. Bewerk het sshd_config‑bestand:
sudo nano /etc/ssh/sshd_config
  1. Pas (of voeg) de volgende instellingen toe:
PasswordAuthentication no
PubkeyAuthentication yes
  1. Herstart de SSH‑service:
sudo systemctl restart ssh

Dit zorgt ervoor dat SSH alleen authenticatie via openbare sleutels accepteert. Zorg ervoor dat je authenticatie met een openbare sleutel hebt ingesteld voordat je deze wijziging toepast.

2. Verander de standaard SSH‑poort

Het gebruik van de standaard SSH‑poort (22) maakt het een gemakkelijk doelwit voor aanvallen. Het wijzigen van de poort verbetert de beveiliging.

Stappen

  1. Open het sshd_config‑bestand:
sudo nano /etc/ssh/sshd_config
  1. Wijzig het poortnummer (bijv. wijzig naar 2222):
Port 2222
  1. Sta de nieuwe poort toe via de firewall:
sudo ufw allow 2222/tcp
  1. Herstart de SSH‑service:
sudo systemctl restart ssh
  1. Test de nieuwe poort:
ssh -p 2222 username@server-ip

3. Schakel root‑login uit

Standaard kan de root‑gebruiker inloggen via SSH, wat een beveiligingsrisico vormt. Het wordt aanbevolen alleen specifieke gebruikers toe te staan verbinding te maken.

Stappen

  1. Open het sshd_config‑bestand:
sudo nano /etc/ssh/sshd_config
  1. Pas de volgende instelling aan:
PermitRootLogin no
  1. Herstart de SSH‑service:
sudo systemctl restart ssh

4. Voorkom brute‑force‑aanvallen met Fail2Ban

Fail2Ban houdt inlogpogingen bij en blokkeert IP‑adressen na meerdere mislukte authenticatiepogingen.

Installatie en configuratie

  1. Installeer Fail2Ban:
sudo apt install fail2ban -y
  1. Kopieer het standaardconfiguratiebestand:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
  1. Bewerk jail.local :
sudo nano /etc/fail2ban/jail.local
  1. Pas de instellingen onder [sshd] aan :
[sshd]
enabled = true
maxretry = 5
bantime = 600
findtime = 600
  • maxretry : Maximum aantal toegestane inlogpogingen.
  • bantime : Tijd (in seconden) dat een IP geblokkeerd wordt.
  • findtime : Tijdvenster (in seconden) waarin mislukte pogingen worden geteld.
  1. Herstart Fail2Ban:
sudo systemctl restart fail2ban
  1. Controleer de status van Fail2Ban:
sudo fail2ban-client status sshd

8. Veelgestelde vragen (FAQ)

Deze sectie beantwoordt veelvoorkomende vragen en problemen bij het gebruik van SSH.

Q1: Waarom wordt de SSH‑verbinding geweigerd?

Mogelijke oorzaken:

  • SSH‑service draait niet → Controleer met sudo systemctl status ssh
  • Firewall blokkeert SSH → Sta SSH toe met sudo ufw allow ssh
  • Er wordt een aangepaste poort gebruikt → Verbind met ssh -p <port> username@server-ip

Q2: Hoe wijzig ik de standaard SSH‑poort?

Pas het sshd_config‑bestand aan:

sudo nano /etc/ssh/sshd_config

Wijzig de poort:

Port 2222

Herstart vervolgens SSH:

sudo systemctl restart ssh

Q3: Hoe sta ik alleen specifieke IP‑adressen toe om SSH te benaderen?

Pas de firewallinstellingen aan:

sudo ufw allow from 192.168.1.100 to any port 22

Of gebruik sshd_config:

AllowUsers username@192.168.1.100

9. Conclusie

Deze gids heeft alles behandeld, van SSH‑basisprincipes tot beveiligingsverbeteringen. Hier zijn de belangrijkste punten:

  • Gebruik authenticatie met een openbare sleutel in plaats van wachtwoorden.
  • Verander de standaard SSH‑poort voor betere beveiliging.
  • Schakel root‑login uit om ongeautoriseerde toegang te voorkomen.
  • Gebruik Fail2Ban om brute‑‑aanvallen te blokkeren.
  • Houd SSH‑logboeken in de gaten voor probleemoplossing.

Aanvullende bronnen

Door deze best practices te volgen, kun je een veilige en efficiënte SSH‑omgeving behouden. 🚀

年収訴求