Ga naar inhoud

Verbinding maken met een server via SSH

In dit artikel

Verbinding maken met een server via SSH vanaf Linux

Volg deze stappen om via SSH verbinding te maken met uw server vanaf Linux:

  1. Controleer het IP-adres van de server. Zorg ervoor dat u het IP-adres van de server weet. Als u dit niet weet, kunt u dit vinden in het Invapi Control Panel.

  2. Installeer een SSH-client (indien nodig). Een SSH-client is meestal standaard al geïnstalleerd op de meeste Linux-distributies. Om dit te controleren, opent u een terminal en voert u het volgende commando uit:

    ssh --version
    

    Als de client is geïnstalleerd, ziet u de programmapersie.

    Als de SSH-client niet is geïnstalleerd, installeer deze dan via de pakketbeheerder van uw distributie:

    • Voor Ubuntu/Debian:

      sudo apt update
      sudo apt install openssh-client
      
    • Voor CentOS/RHEL:

      sudo yum install openssh-clients
      
  3. Maak verbinding met de server. Open een terminal en voer het volgende commando uit:

    ssh <username>@<server IP address>
    

    Bijvoorbeeld:

  4. Voer uw wachtwoord in. Na het maken van verbinding zal het systeem u vragen om het wachtwoord voor de opgegeven gebruiker in te voeren. De inloggegevens en het wachtwoord van de server worden naar u verzonden via e-mail zodra deze zijn geleverd.

Verbinding maken met een server via SSH vanaf Windows

  1. Controleer het IP-adres van de server. Zorg ervoor dat u het IP-adres van de server weet. Als u dit niet weet, kunt u dit vinden in het Invapi Control Panel op de HOSTKEY.com website via https://invapi.hostkey.com.

  2. In Windows 11 zijn er verschillende manieren om via SSH verbinding te maken met een server:

Gebruik maken van OpenSSH (ingebouwde applicatie)

  • Sinds de October 2018 Update van Windows 10 is de SSH-client standaard inbegrepen. Om dit te controleren, voert u PowerShell uit en voert u het volgende commando uit:

    ssh
    

    Als de client is geïnstalleerd, ziet u de uitvoeropties voor het gebruik ervan.

  • Als de SSH-client niet is geïnstalleerd, schakel deze dan in via Settings:

    1. Ga naar **Settings** > **System** > **Additional components**.
    
    2. Zoek `OpenSSH Client` en installeer deze.
    
  • Maak verbinding met de server. Open PowerShell en voer het volgende commando uit:

    ssh <username>@<server IP address>
    

    Bijvoorbeeld:

    ssh root@192.168.0.100
    
  • Voer uw wachtwoord in. Na het maken van verbinding zal het systeem u vragen om het wachtwoord voor de opgegeven gebruiker in te voeren. De inloggegevens en het wachtwoord van de server worden naar u verzonden via e-mail zodra deze zijn geleverd.

Gebruik maken van PuTTY (alternatieve client):

  • Download PuTTY van de officiële website https://www.putty.org.

  • Start PuTTY op en voer het IP-adres van de server in het veld "Host Name (or IP address)" in.

  • Specificeer het verbindingstype als SSH en klik op Open.

  • Maak verbinding met de server:

    • Voer het IP-adres van de server in het veld Host Name (or IP address) in.

    • Specificeer poort 22 voor SSH als deze is gewijzigd.

    • Klik op Open. Voer in het venster dat wordt geopend uw gebruikersnaam en wachtwoord in.

  • Voer uw wachtwoord in. Na het maken van verbinding zal het systeem u vragen om het wachtwoord voor de opgegeven gebruiker in te voeren. De inloggegevens en het wachtwoord van de server worden naar u verzonden via e-mail zodra deze zijn geleverd.

Opmerking

  • Het wordt aanbevolen om SSH-sleutels te gebruiken in plaats van wachtwoorden voor een veiligere authenticatie. Instructies voor het instellen van SSH-sleutels vindt u in de documentatie van uw distributie of in onze handleiding.

  • Als u de foutmelding Connection refused ontvangt, controleer dan of de SSH-server draait op de doelserver en of poort 22 open staat in de firewall.

Probleemoplossing voor SSH-verbindingen

Door deze diagnose uit te voeren, kunt u bepalen waar de SSH-verbinding wordt verbroken: aan uw kant, op de server (sshd, firewall, instellingen) of aan de kant van uw provider. Voer de stappen in de juiste volgorde uit en bewaar de uitvoer van de commando's—deze zijn vereist voor de supportafdeling.

Let op

Vervang in de onderstaande commando's SERVER_IP door het IP-adres van uw server. Commando's op de server moeten worden uitgevoerd als root of via sudo. Als SSH niet beschikbaar is op de server, log dan in via de webconsole (VNC/KVM) in het hostingpaneel.

Stap 1. Controleren vanaf uw eigen computer

Het doel is om vast te stellen of de server bereikbaar is en of poort 22 reageert. Deze commando's worden uitgevoerd op de computer waarmee u verbinding maakt.

  1. Netwerkbeschikbaarheid van de server

    ping -c 4 SERVER_IP
    

    Geen reactie betekent niet noodzakelijkerwijs een fout: ICMP wordt vaak geblokkeerd door een firewall. De belangrijkste controle is de volgende stap.

  2. Reageert poort 22?

    nc -vz -w 5 SERVER_IP 22
    
    # als nc niet is geïnstalleerd:
    timeout 5 bash -c '</dev/tcp/SERVER_IP/22' && echo OPEN || echo CLOSED
    
    Resultaat Betekenis
    succeeded / open Poort is open, netwerk is in orde—het probleem ligt bij de authenticatie of sshd-instellingen (Stap 4)
    Connection refused Server is bereikbaar, maar er luistert niets op poort 22 of de firewall stuurt een REJECT (Stap 2–3)
    timed out Pakketten gaan verloren: firewall DROP, filter van de provider, of een blokkade langs de route (Stap 3 en 5)
    No route to host Geen route naar de server of de server staat uit (controleer de status in het paneel)
  3. Nauwkeurige controle via nmap

    Toont de status van de poort en wat er op draait. Installatie: sudo apt install nmap of sudo dnf install nmap.

    # poort 22 status en SSH-serverversie
    sudo nmap -Pn -sV -p 22 SERVER_IP
    
    # met reden voor de status en route naar de server
    sudo nmap -Pn -p 22 --reason --traceroute SERVER_IP
    
    # vergelijk 22 met andere poorten (filtert alleen 22 of alles?)
    sudo nmap -Pn -p 22,80,443,2222 --reason SERVER_IP
    
    # SSH-algoritmen – als het script draait, werkt de sleuteluitwisseling
    nmap -Pn -p 22 --script ssh2-enum-algos SERVER_IP
    

    -Pn is vereist zodat nmap niet aanneemt dat de server offline is als ping wordt geblokkeerd.

    nmap Status Betekenis
    open (reason syn-ack) Poort is open, sshd reageert; -sV zou een OpenSSH-versie moeten tonen
    closed (reason reset) Server is bereikbaar, maar sshd luistert niet op de poort (Stap 2)
    filtered (reason no-response) Pakketten gaan verloren: firewall DROP of een blokkade langs de route (Stap 3 en 5)
    filtered (reason admin-prohibited) Firewall reageert met een afwijzing—REJECT-regel op de server of bij de provider (Stap 3)
    open, maar -sV toont geen versie of tcpwrapped TCP-verbinding slaagt, maar de SSH-banner wordt niet ontvangen—TCP Wrappers, fail2ban, of DPI (Stap 4–5)

    Als --traceroute reacties wegvallen bij de nodes van uw provider terwijl 80/443 open blijven, is dit een sterk teken van filtering specifiek op poort 22. Bewaar de uitvoer voor de supportafdeling: voeg -oN nmap.txt toe aan het commando.

  4. Gedetailleerd verbindingslogboek

    Toont in welke fase de verbinding wordt verbroken:

    ssh -vvv -o ConnectTimeout=10 user@SERVER_IP 2>&1 | tee ssh_debug.log
    
    • Hangt bij Connecting to — netwerkprobleem.
    • Verbinding verbroken na Connection established (bijv. bij SSH2_MSG_KEXINIT of Connection reset by peer) — typisch teken van DPI-filtering of fail2ban.
    • Permission denied — netwerk is in orde, maar de sleutel of het wachtwoord is onjuist.
  5. Route naar de server specifiek via TCP-poort 22

    sudo traceroute -T -p 22 SERVER_IP
    
    # of een overzicht van pakketverlies:
    sudo mtr -T -P 22 -r -c 50 SERVER_IP > mtr.txt
    

    Observeer bij welke node de reacties stoppen. Een verbinding die wordt verbroken binnen het netwerk van uw provider wijst op filtering langs de route in plaats van een probleem met de server.

  6. Sluit uw eigen netwerk uit

    Herhaal Stap 2 met een mobiele hotspot en controleer of poort 22 (outbound) wordt geblokkeerd door uw werk- of bedrijfsfirewall.

Stap 2. Draait de SSH-server?

Uit te voeren op de server (via het webconsole van de hosting). In Debian/Ubuntu heet de service ssh; in CentOS/RHEL/Alma/Rocky is het sshd.

  1. Servicestatus

    systemctl status ssh || systemctl status sshd
    

    Het zou active (running) moeten zijn. Als het inactive of failed is, start de service dan en stel deze zo in dat deze bij het opstarten wordt geactiveerd:

    sudo systemctl enable --now ssh   # of sshd
    

    Als de service niet start, wordt de reden vermeld in de logs.

  2. Pakket niet geïnstalleerd

    Foutmelding Unit ssh.service could not be found:

    sudo apt install openssh-server   # Debian/Ubuntu
    sudo dnf install openssh-server   # CentOS/RHEL/Alma/Rocky
    
  3. Op welke poort en adres luistert sshd?

    sudo ss -tlnp | grep -E 'sshd|:22'
    
    Uitvoer Betekenis
    0.0.0.0:22 of [::]:22 Alles is in orde; luistert op alle interfaces
    127.0.0.1:22 Luistert alleen lokaal — corrigeer ListenAddress (Stap 4)
    Andere poort, bijv. :2222 Maak verbinding via die poort: ssh -p 2222 user@SERVER_IP
    Leeg sshd draait niet of kan niet binden aan de poort — zie logs hierboven
  4. Ubuntu 22.10+ en socket-activatie

    In deze versies is de poort gedefinieerd in zowel ssh.socket als sshd_config. Om dit te controleren:

    systemctl status ssh.socket
    

    Na het wijzigen van de poort uitvoeren:

    sudo systemctl daemon-reload && sudo systemctl restart ssh.socket
    
  5. Testen vanaf de server zelf

    ssh -v localhost
    

    Als dit lokaal wel werkt maar niet van buitenaf, ligt het probleem bij de firewall of het netwerk (Stap 3 en 5).

Stap 3. Serverfirewall

Meestal draait er een van de drie firewalls op de server: ufw (Ubuntu), firewalld (CentOS/RHEL), of de ruwe iptables/nftables. Controleer alle drie—soms zijn er twee tegelijk actief.

Let op

Als u momenteel via SSH verbonden bent en niet via het webconsole, sta dan eerst poort 22 toe en activeer of herstart dan pas de firewall—anders verliest u de toegang.

ufw

sudo ufw status verbose

# als 22/tcp niet in de ALLOW-lijst staat:
sudo ufw allow 22/tcp

firewalld

sudo firewall-cmd --state
sudo firewall-cmd --list-all

# als ssh niet in de services staat:
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload

iptables / nftables

sudo iptables -L INPUT -n -v --line-numbers
sudo nft list ruleset

Zoek naar regels met dpt:22 of tcp dport 22 en de actie DROP / REJECT, evenals een policy DROP zonder een "allow"-regel voor poort 22. Let op regels die de toegang beperken op basis van de bron (-s) of land (met behulp van geoip modules of ipset lijsten): hierdoor kan de server toegankelijk zijn vanaf overal behalve uw land.

Om SSH tijdelijk toe te staan aan het begin van de keten (tot de reboot):

sudo iptables -I INPUT 1 -p tcp --dport 22 -j ACCEPT

Als de verbinding daarna werkt, is de oorzaak gevonden; sla de regel op via uw firewall (ufw/firewalld) of met behulp van iptables-save.

Stap 4. sshd-instellingen en beveiligingstools

Als de poort open is maar de verbinding wordt verbroken of de authenticatie mislukt, controleer dan uw configuratie en eventuele blokkades.

  1. Definitieve sshd-configuratie

    Rekening houdend met bestanden in sshd_config.d/:

    sudo sshd -T | grep -Ei '^(port|listenaddress|permitrootlogin|passwordauthentication|pubkeyauthentication|allowusers|allowgroups|denyusers|maxstartups)'
    

    Controleer:

    • port 22;
    • listenaddress 0.0.0.0 (niet 127.0.0.1);
    • of uw gebruiker in allowusers staat, indien die parameter is ingesteld;
    • permitrootlogin en passwordauthentication — zorg ervoor dat deze zijn ingesteld op de gewenste waarden.
  2. Syntax-controle voor herstarten

    Controleer na elke wijziging in /etc/ssh/sshd_config altijd de syntax voordat u de service herstart:

    sudo sshd -t && sudo systemctl restart ssh   # of sshd
    
  3. fail2ban

    Dit kan uw IP hebben geblokkeerd na mislukte inlogpogingen:

    sudo fail2ban-client status sshd
    
    # om uw IP te deblokkeren:
    sudo fail2ban-client set sshd unbanip YOUR_IP
    

    U kunt uw externe IP vinden vanaf uw clientmachine met het commando curl -4 ifconfig.me. Controleer op dezelfde manier CrowdSec of sshguard als deze zijn geïnstalleerd.

  4. TCP Wrappers (op oudere systemen)

    cat /etc/hosts.allow /etc/hosts.deny 2>/dev/null
    

    Een regel als sshd: ALL in hosts.deny blokkeert iedereen die niet in hosts.allow staat vermeld.

  5. Wat de server ziet tijdens uw verbindingspoging

    Voer dit uit op de server en probeer vervolgens verbinding te maken vanaf de client:

    sudo journalctl -u ssh -u sshd -f
    
    # in een tweede venster – controleer of pakketten de server bereiken:
    sudo tcpdump -ni any tcp port 22 and host YOUR_IP
    
    • Als tcpdump niets laat zien—bereiken de pakketten de server niet; het probleem ligt in het netwerkpad (Stap 5).
    • Als pakketten aankomen maar het sshd logboek is leeg—worden ze gedropt door de serverfirewall (Stap 3).

Stap 5. Onbeschikbaarheid specifiek vanuit uw land

Als alles in orde is op de server (Stap 2–4) maar pakketten vanuit uw land komen niet aan, moet u de poortbeschikbaarheid vanuit uw land vergelijken met andere landen.

  1. Controleer de poort vanaf externe locaties

    Gebruik de check-host.net service → TCP port tab, voer SERVER_IP:22 in. Controleer de resultaten voor uw land en internationale nodes.

    Vanuit uw land Vanuit andere landen Conclusie
    Faalt Werkt Routing-filtering vanuit uw land of geoblocking aan de server/host-zijde
    Faalt Faalt Probleem op de server — ga terug naar Stap 2–4
    Werkt Werkt Probleem met uw ISP of lokaal netwerk
  2. Vergelijk providers binnen uw land

    Thuisinternet en mobiele providers gedragen zich vaak anders. Als het via de één wel werkt maar via de ander niet, ligt de blokkade bij de specifieke provider.

  3. Controleer of specifiek poort 22 wordt beïnvloed

    Voeg tijdelijk een tweede poort toe aan /etc/ssh/sshd_config op de server (de originele Port 22 regel blijft staan):

    Port 22
    Port 2222
    

    Sta 2222/tcp toe in uw firewall (Stap 3), en voer dan uit:

    sudo sshd -t && sudo systemctl restart ssh
    

    En maak verbinding:

    ssh -p 2222 user@SERVER_IP
    

    Op SELinux-systemen (CentOS/RHEL), voer deze extra stap uit:

    sudo semanage port -a -t ssh_port_t -p tcp 2222
    

    Als het werkt op 2222 maar niet op 22, dan wordt de standaardpoort gefilterd.

  4. Tekenen van DPI-filtering

    De TCP-verbinding wordt tot stand gebracht (nc geeft open aan), maar ssh -vvv wordt afgebroken tijdens de sleuteluitwisseling; of de verbinding werkt enkele seconden en loopt dan vast. In dit geval is de serverinstelling niet de oorzaak — stuur de logs naar de supportafdeling.

Wat u moet opnemen in uw supportbericht

Als het probleem niet is opgelost, stuur ons dan het volgende—dit zal de diagnostische tijd verkorten:

  • Server IP en uw publieke IP (curl -4 ifconfig.me), stad en ISP;
  • Het nmap.txt bestand en het resultaat van nc -vz -w 5 SERVER_IP 22;
  • Het ssh_debug.log bestand (Stap 1, item 4);
  • Het mtr.txt bestand of de uitvoer van traceroute -T -p 22;
  • Server-uitvoer: systemctl status ssh, ss -tlnp | grep :22, en firewall-regels (ufw status verbose / firewall-cmd --list-all / iptables -L INPUT -n -v);
  • Een link naar de TCP-poortcontrole-resultaten van check-host.net;
  • Of de verbinding werkt via mobiel internet en op poort 2222 (indien u dit heeft getest).

Let op

Stuur geen wachtwoorden of privé-sleutels. Het ssh -vvv logboek bevat deze niet, maar controleer het bestand wel voordat u het verzendt.

question_mark
Is there anything I can help you with?
question_mark
AI Assistant ×