Secure Shell (SSH) is een belangrijke tool voor WordPress development. Het geeft gevorderde gebruikers toegang tot belangrijke platforms en software die codering en andere taken eenvoudiger, sneller en overzichtelijker maken.

Als je bij het gebruik van SSH de foutmelding “Connection refused” te zien krijgt, kan je je zorgen gaan maken. Gelukkig is dit een veelvoorkomend probleem en het is heel goed mogelijk om het zelf op te lossen. Binnen de kortste keren kun je weer met een gerust hart opdrachten uitvoeren.

In dit artikel bespreken we wat SSH is en wanneer en waarvoor we het kunnen gebruiken. Vervolgens leggen we enkele veelvoorkomende redenen uit waarom jouw verbinding kan worden geweigerd, ook in PuTTY. Ten slotte geven we enkele tips voor het oplossen van veelvoorkomende problemen.

Laten we aan de slag gaan!

Bekijk je liever de videoversie?

Wat is SSH en wanneer moet ik het gebruiken?

Secure Shell (SSH), ook wel Secure Socket Shell genoemd, is een protocol waarmee je veilig toegang krijgt tot de server van je site via een onbeveiligd netwerk. Met andere woorden, het is een manier om veilig op afstand in te loggen op jouw server met behulp van de gewenste opdrachtregel-interface, je command line interface:

SSH gebruiken om op afstand toegang te krijgen tot een WordPress-site die wordt gehost op Kinsta
SSH gebruiken om op afstand toegang te krijgen tot een WordPress-site die wordt gehost op Kinsta

In tegenstelling tot File Transfer Protocol (FTP), waarmee je alleen bestanden op je server kan uploaden, verwijderen en bewerken, kan SSH een breed scala aan taken uitvoeren. Als je door een fout bijvoorbeeld de toegang tot jouw WordPress site hebt geblokkeerd, kan je SSH gebruiken om deze op afstand te openen.

Met dit protocol kan je ook verschillende belangrijke developmenttools gebruiken, waaronder:

  • WP-CLI. de WordPress opdrachtregel. Je kan het voor verschillende taken gebruiken, waaronder nieuwe installaties, bulkupdates van plugins en het importeren van mediabestanden.
  • Composer. Een PHP package manager. Het stelt je in staat om verschillende frameworks te implementeren voor gebruik in de code van jouw site door de nodige bibliotheken en dependency’s op te halen.
  • Git. Een versiebeheersysteem dat wordt gebruikt om wijzigingen in de code bij te houden. Dit is vooral handig voor teams van ontwikkelaars die samenwerken aan één project.
  • npm. Een JavaScript package manager. Het bevat een opdrachtregel en JavaScript softwareregistratie. Opmerking: Kinsta klanten hebben een Enterprise pakket nodig om toegang te krijgen tot deze functie.

Het is belangrijk op te merken dat je voor het gebruik van SSH een gevorderde gebruiker moet zijn. Over het algemeen kunnen beginners met WordPress het best contact opnemen met hun ontwikkelaars of hostingproviders voor hulp, in plaats van problemen met SSH zelf op te lossen.

Waarom wordt mijn SSH verbinding geweigerd? (5 redenen voor verbindingsfouten)

Helaas zijn er veel scenario’s die kunnen optreden terwijl je probeert verbinding te maken met jouw server via SSH, wat kan resulteren in een foutmelding “Verbinding geweigerd”.

Hieronder staan enkele van de meest voorkomende problemen die mogelijks ook problemen voor jou veroorzaken.

1. Je SSH service is uitgevallen

Om jouw server verbinding te laten maken met SSH, moet deze een SSH daemon uitvoeren. Dit is een programma dat op de achtergrond wordt uitgevoerd om naar verbindingen te luisteren en deze te accepteren.

Als deze service niet werkt kan je geen verbinding maken met jouw server en krijg je mogelijk een foutmelding als Connection refused:

Verbinding Geweigerd fout in Terminal
Verbinding Geweigerd fout in Terminal

De SSH daemon van jouw server kan om een groot aantal verschillende redenen niet beschikbaar zijn, zoals onverwachte pieken in het verkeer, uitval van resources of zelfs een Distributed Denial of Service (DDoS) -aanval. Naast de onderstaande stappen om het probleem op te lossen, kan je contact opnemen met jouw hostingprovider om de oorzaak van het probleem te achterhalen.

Als je vermoedt dat jouw SSH service niet beschikbaar is, kan je deze opdracht uitvoeren om erachter te komen:

sudo service ssh status

Als de opdrachtregel de status down teruggeeft, heb je waarschijnlijk de reden achter de verbindingsfout gevonden.

2. Je hebt de verkeerde inloggegevens

Hoewel het misschien te simpel lijkt om waar te zijn, is het mogelijk dat je simpelweg de verkeerde inloggegevens in hebt gevoerd toen je probeerde verbinding te maken met je server. Er zijn vier stukjes informatie nodig om SSH uit te voeren:

  • Hostname. Het IP adres van de server waarmee je verbinding probeert te maken of jouw domeinnaam.
  • Username. Jouw (S)FTP gebruikersnaam.
  • Password. Jouw (S)FTP wachtwoord.
  • Port. De standaardpoort is 22. Sommige hostingproviders (waaronder Kinsta) wijzigen echter hun SSH poortnummer om veiligheidsredenen. Als dit het geval is, zou je het moeten kunnen vinden door in te loggen op je MyKinsta dashboard.

Je kan ook controleren welke poort wordt gebruikt voor SSH door deze opdracht uit te voeren:

grep Port /etc/ssh/sshd_config

De opdrachtregel zou de juiste poort moeten retourneren.

Controleer of je de juiste inloggegevens invoert en houd rekening met de mogelijkheid van typefouten of het invoeren van het verkeerde IP adres of de verkeerde poort.

3. De poort die je probeert te gebruiken is gesloten

Een “poort” is gewoon het eindpunt waarnaar je wordt geleid wanneer je verbinding maakt met jouw server. Controleer niet alleen of je de juiste hebt maar ook of de poort die je probeert te gebruiken open is.

Elke poort die open is, is een beveiligingsprobleem aangezien hackers kunnen proberen deze te misbruiken om toegang te krijgen tot de server. Om deze reden worden ongebruikte poorten vaak gesloten om aanvallen te voorkomen.

In het geval dat poort 22, of de aangepaste SSH poort voor jouw server is gesloten, zie je waarschijnlijk de foutmelding Connection refused. Je kan alle poorten op jouw server zien die op “listen” staan, door deze opdracht uit te voeren:

sudo lsof -i -n -P | grep LISTEN

Deze opdracht zou een lijst met poorten met de status LISTEN moeten retourneren. Idealiter wil je poort 22 of de aangepaste SSH-poort van jouw server hier vermeld zien. Als dit niet het geval is, moet je de poort opnieuw openen om verbinding te maken met jouw server.

4. SSH is niet op je server geïnstalleerd

Zoals we eerder kort vermeldden, gebruiken servers SSH daemons om naar verbindingen te luisteren en deze te accepteren. Daarom is het zo dat als de server waarmee je verbinding probeert te maken er geen heeft geïnstalleerd, je er geen toegang toe kan krijgen via SSH.

Over het algemeen hebben bijna alle hostingproviders standaard SSH daemons op hun servers geïnstalleerd. Dit specifieke probleem komt vaker voor op localhost of dedicated servers.

5. Firewall instellingen verhinderen een SSH verbinding

Omdat open poorten een beveiligingsrisico vormen, blokkeren firewalls die zijn geïnstalleerd om servers tegen hackers te beschermen soms verbindingen met deze poorten. Helaas betekent dit dat zelfs ongeschuldige gebruikers die proberen via SSH naar hun servers te gaan, een foutmelding Connection refused te zien krijgen als gevolg van firewall-instellingen.

Als je setup in orde lijkt te zijn en je kan nog steeds geen verbinding maken, bekijk dan de regels van je firewall. Je kan ze in de opdrachtregelinterface weergeven met de volgende opdrachten:

sudo iptables-save # display IPv4 rules
sudo ip6tables-save # display IPv6 rules

Hoewel jouw resultaten zullen variëren zal je naar deze elementen moeten zoeken om te bepalen of jouw firewall SSH verbindingen blokkeert:

  • dport 22: Dit verwijst naar de bestemmingspoort, die voor SSH meestal poort 22 is (herinnering: Kinsta gebruikt dit poortnummer niet).
  • REJECT: dit geeft aan dat verbindingen worden geweigerd vanaf de opgegeven bestemming.
  • DROP: Net als REJECT betekent dit dat verbindingen met de relevante poort worden geblokkeerd.

Als je de resultaten van de bovenstaande opdrachten zoekt voor dport 22, zou je moeten kunnen bepalen of jouw firewall een SSH verbinding verhindert. Als dat het geval is, moet je de regels wijzigen om verzoeken te accepteren.

Waarom zegt PuTTY Connection refused?

PuTTY is een SSH client. Als je bekend bent met FTP is dit platform het FileZilla equivalent van SSH op Windows machines. Met andere woorden, PuTTY stelt gebruikers in staat om hun inloggegevens in te voeren en een SSH verbinding tot stand te brengen:

De PuTTY-website
De PuTTY-website

Als je een PuTTY gebruiker bent en de foutmelding Connection refused ziet, is de oorzaak waarschijnlijk een van de hierboven genoemde redenen.

Dit is een SSH verbindingsfout zoals alle andere en de onderstaande tips voor het oplossen van problemen zouden moeten werken, ongeacht of je PuTTY, Terminal of een ander programma gebruikt om verbinding te maken met jouw server via SSH.

We hebben onze kennis van effectief websitebeheer verzameld en er een e-boek en videocursus van gemaakt. Klik hier om de Gids voor het beheren van 40+ WordPress sites van 2021 te downloaden!

Hoe los ik problemen met SSH-connectiviteit op?

Als je een SSH verbindingsfout tegenkomt, zijn er een paar stappen die je kan ondernemen om het op te lossen, afhankelijk van de oorzaak. Hier zijn enkele tips voor het oplossen van de redenen voor een foutmelding Connection refused die we hierboven hebben behandeld:

  • Als je SSH service niet beschikbaar is. Neem contact op met de hostingprovider om te zien waarom de SSH service niet actief is. Voor localhost of dedicated servers kan je de opdracht sudo service ssh restart gebruiken om te proberen het weer aan de praat te krijgen.
  • Als je de verkeerde inloggegevens hebt ingevoerd. Zodra je de SSH poort dubbel hebt gecontroleerd met het grep Port/etc/ssh/sshd_config commando, probeer dan opnieuw verbinding te maken met de juiste gegevens.
  • Indien jouw SSH poort is gesloten. Dit is meestal een bijwerking van één van de twee onderstaande redenen. Installeer een SSH daemon op de server waarmee je verbinding wilt maken of wijzig de firewallregels om verbindingen met de SSH poort te accepteren.
  • Als SSH niet op je server is geïnstalleerd. Installeer een SSH tool zoals OpenSSH op de server waarmee je verbinding wilt maken met de opdracht sudo apt install openssh-server.
  • Als jouw firewall de SSH verbinding blokkeert. Schakel de firewallregels uit die de SSH verbinding blokkeren door de instellingen van de bestemmingspoort te wijzigen in ACCEPT.

Als je probeert verbinding te maken met de server van jouw hostingprovider is het wellicht verstandiger om contact op te nemen met de ondersteuning dan om het probleem zelf op te lossen. Gebruikers op localhost of dedicated servers kunnen mogelijks verdere ondersteuning vinden op meer geavanceerde forums als geen van de bovenstaande oplossingen werkt.

Samenvatting

Verbinding kunnen maken met je server via SSH heeft een groot aantal toepassingen en kan erg handig zijn. Het kan je in staat stellen om toegang te krijgen tot jouw site wanneer je geen toegang meer hebt tot je WordPress dashboard, opdrachten uit te voeren via WP-CLI, wijzigingen in de code van je site bij te houden met Git en meer.

Hoewel er verschillende oorzaken kunnen zijn achter de SSH verbindingsfout, zijn dit enkele van de meest voorkomende:

  1. Je SSH service is uitgevallen.
  2. Je hebt de verkeerde inloggegevens.
  3. De poort die je probeert te gebruiken is gesloten.
  4. SSH is niet op jouw server geïnstalleerd.
  5. Firewall-instellingen verhinderen een SSH verbinding.