Secure Shell (SSH) är ett viktigt WordPressverktyg. Det ger avancerade användare tillgång till viktiga plattformar och programvara som gör kodning och andra uppgifter enklare, snabbare och mer organiserade.
Så om du försöker använda SSH och möts av ett ”Anslutning nekad”-fel kan du börja känna dig orolig. Detta är dock ett vanligt problem, och det är helt möjligt att fixa det på egen hand med bara lite felsökning. Du kommer vara tillbaka igång med dina kommandon på nolltid.
I det här inlägget diskuterar vi vad SSH är och när du ska använda det. Sedan kommer vi att förklara några vanliga skäl till att din anslutning kan nekas, inklusive i PuTTY. Slutligen ger vi några felsökningstips.
Nu börjar vi!
Vad är SSH och när ska jag använda det?
Secure Shell (SSH), även kallad Secure Socket Shell, är ett protokoll för att säkert komma åt din webbplatsserver över ett osäkrat nätverk. Med andra ord är det ett sätt att säkert använda fjärrinloggning på din server med ditt föredragna kommandoradsgränssnitt:
Till skillnad från FTP (File Transfer Protocol), vilket endast låter dig ladda upp, ta bort och redigera filer på din server, kan SSH utföra ett brett spektrum av uppgifter. Om ett fel låser dig ute från din WordPresswebbplats kan du till exempel använda SSH för att få fjärråtkomst till den.
Detta protokoll låter dig också använda flera viktiga utvecklingsverktyg, inklusive:
- WP-CLI. WordPress kommandoradsverktyg. Du kan använda det för en mängd olika uppgifter, inklusive nya installationer, masspluginuppdateringar och import av mediafiler.
- Composer. En PHP-pakethanterare. Det gör att du kan implementera flera ramverk att använda i din webbplatskod genom att dra in nödvändiga bibliotek och beroenden.
- Git. Ett versionskontrollsystem som används för att spåra ändringar i kod. Detta är särskilt användbart för team av utvecklare som arbetar tillsammans på ett enda projekt.
- npm. En JavaScript-pakethanterare. Den innehåller ett kommandorads- och JavaScript-programvaruregister. Observera: Kinsta kunder behöver en Enterprise-plan för att få tillgång till den här funktionen.
Det är också viktigt att notera att användning av SSH är en avancerad färdighet. Generellt sett bör amatöranvändare av WordPress kontakta sina utvecklare eller sitt webbhotell för hjälp, snarare än att försöka lösa problem med SSH själva.
Varför nekas min SSH-anslutning? (5 skäl till anslutningsfel)
Tyvärr finns det många scenarier som kan uppstå när du försöker ansluta till din server via SSH, vilket kan leda till felet ”Anslutning nekad”.
Nedan listar vi några av de vanligaste situationerna som kan orsaka problem för dig.
1. Din SSH-tjänst är nere
För att kunna ansluta till din server med SSH måste den köra en SSH daemon – ett program som körs i bakgrunden för att lyssna på och acceptera anslutningar.
Om den här tjänsten är nere, kommer du inte att kunna ansluta till din server och kan få ett ”Anslutning nekad”-fel
Serverns SSH-daemon kan vara nere av en mängd olika skäl, inklusive oväntade trafikspikar, resursavbrott eller till och med en DDoS-attack. Förutom de felsökningssteg som vi nämner nedan kan du kontakta din hostingleverantör för att hitta orsaken till problemet.
Om du misstänker att din SSH-tjänst kan vara nere kan du köra det här kommandot för att ta reda på det:
sudo service ssh status
Om kommandoraden returnerar en status med ”down” har du sannolikt hittat orsaken till ditt anslutningsfel.
2. Du har fel inloggningsuppgifter
Även om det kan tyckas vara för enkelt för att vara sant är det möjligt att du bara anger fel uppgifter när du försöker ansluta till din server. Det finns fyra delar information som behövs för att köra SSH:
- Värdnamn. IP-adressen för den server du försöker ansluta till eller ditt domännamn.
- Användarnamn. Ditt (S)FTP användarnamn.
- Lösenord. Ditt (S)FTP-lösenord.
- Standardporten är 22. Vissa webbhotell (inklusive Kinsta) ändrar dock sitt SSH-portnummer av säkerhetsskäl. Om så är fallet bör du kunna hitta det genom att logga in på MyKinsta-panelen.
Du kan också kontrollera vilken port som används för SSH genom att köra det här kommandot:
grep Port /etc/ssh/sshd_config
Kommandoraden borde returnera rätt port.
Kontrollera att du anger rätt uppgifter och tänker på att du kan ha stavat fel eller angett fel IP-adress eller port.
3. Porten du försöker använda är stängd
En ”port” är helt enkelt slutpunkten som du dirigeras till när du ansluter till din server. Förutom att se till att du har rätt port behöver du också kontrollera om porten du försöker använda är öppen.
Varje öppen port är ett säkerhetsproblem eftersom hackare kan försöka utnyttja dem och få tillgång till servern. Av denna anledning stängs oanvända portar ofta för att förhindra attacker.
I händelse av att port 22, eller den anpassade SSH-porten för din server, har stängts kommer du sannolikt att se ett ”Anslutning nekad”-fel. Du kan kontrollera om porten lyssnar genom att köra det här kommandot:
sudo netstat -plnt
Kommandoraden borde returnera en lista över portar och deras respektive ”tillstånd”. Du vill att tillståndet för port 22 ska vara LISTEN. Om det inte är det måste du öppna porten igen för att kunna ansluta till din server.
4. SSH är inte installerat på din server
Som vi kortfattat nämnde tidigare använder servrar SSH-daemons för att lyssna efter och acceptera anslutningar. Om servern du försöker ansluta till inte har en sådan installerad kommer du därför inte att kunna komma åt den med SSH.
Generellt sett kommer nästan alla webbhotell att ha SSH-daemons installerade på sina servrar som standard. Det här problemet är vanligare på localhost eller dedikerade servrar.
5. Brandväggsinställningar förhindrar en SSH-anslutning
Eftersom öppna portar utgör en säkerhetsrisk kommer brandväggar som är installerade för att skydda servrar från hackare ibland blockera anslutningar till dem. Tyvärr innebär detta att även ofarliga användare som försöker använda SSH för sina servrar kan få ”Anslutning nekad”-felet som ett resultat av brandväggsinställningar.
Om din inställning verkar vara i ordning och du fortfarande inte kan ansluta, ta en titt på brandväggens regler. Du kan se dem i kommandoradsgränssnittet med följande kommandon:
sudo iptables-save # display IPv4 rules
sudo ip6tables-save # display IPv6 rules
Exakt hur resultatet kommer att bli kan variera, men du bör leta efter dessa element för att avgöra om din brandvägg blockerar SSH-anslutningar:
- dport 22: Detta hänvisar till destinationsporten, som för SSH vanligtvis är port 22 (påminnelse: Kinsta använder inte detta portnummer).
- REJECT: Detta är ett tecken på att anslutningar vägras åtkomst av den angivna destinationen.
- DROP: Liksom REJECT innebär detta att anslutningar till den relevanta porten blockeras.
Om du söker efter resultaten från dessa kommandon ovan för dport 22 bör du kunna avgöra om din brandvägg förhindrar en SSH-anslutning eller ej. Om så är fallet måste du ändra reglerna till att acceptera förfrågningar.
Varför säger PuTTY Anslutning nekad?
PuTTY är en SSH-klient. Om du är bekant med FTP är denna plattform FileZillas motsvarighet till SSH på Windows-maskiner. Med andra ord gör PuTTY det möjligt för användare att mata in sina uppgifter och starta en SSH-anslutning:
Om du är en PuTTY-användare och ser ”Anslutning nekad” är orsaken sannolikt en av de som anges ovan.
Detta är ett SSH-anslutningsfel som alla andra, och felsökningstipsen nedan bör fungera oavsett om du använder PuTTY, Terminal eller något annat program för att ansluta till din server med SSH.
Hur felsöker jag SSH-anslutningsfel?
När du upplever ett SSH-anslutningsfel finns det några steg du kan vidta för att felsöka det, beroende på orsaken. Här är några tips för att felsöka orsakerna till ”Anslutning nekad”-felet som vi gick igenom ovan:
- Om din SSH-tjänst är nere: Kontakta din hostingleverantör för att se varför din SSH-tjänst inte körs. För localhost eller dedikerade servrar kan du använda kommandot
sudo service ssh restart
för att försöka få igång den igen. - Om du skrev in fel uppgifter: Efter att du har dubbelkollat SSH-porten med kommandot
grep Port /etc/ssh/sshd_config
kan du försöka att ansluta igen med rätt information. - Om din SSH-port är stängd: Detta är vanligtvis en bieffekt av ett av de två skäl som anges nedan. Installera antingen en SSH-daemon på den server du vill ansluta till eller ändra brandväggsreglerna för att acceptera anslutningar till SSH-porten.
- Om SSH inte är installerat på din server: Installera ett SSH-verktyg som OpenSSH på den server du vill ansluta till med kommandot
sudo apt install openssh-server
. - Om din brandvägg blockerar din SSH-anslutning: Inaktivera brandväggsreglerna som blockerar SSH-anslutningen genom att ändra destinationsportens inställningar till ACCEPT.
Om du försöker ansluta till hostingleverantörens server kan det vara klokare att kontakta support än att försöka felsöka problemet själv. Användare på localhost eller dedikerade servrar kan kanske hitta ytterligare stöd på mer avancerade forum om ingen av ovanstående lösningar fungerar.
Sammanfatting
Att kunna ansluta till din server med SSH är bekvämt i många olika situationer. Det kan göra det möjligt för dig att komma åt din webbplats när du är utelåst från din WordPresspanel, köra kommandon via WP-CLI, spåra ändringar i webbplatsens kod med Git, och mer.
Även om det finns flera orsaker som kan ligga bakom ditt SSH-anslutningsfel är det här några av de vanligaste:
- Din SSH-tjänst är nere.
- Du har fel inloggningsuppgifter
- Porten du försöker använda är stängd.
- SSH är inte installerat på din server.
- Brandväggsinställningar förhindrar en SSH-anslutning