Secure Shell (SSH) er et vigtigt WordPress-udviklingsværktøj. Det giver avancerede brugere adgang til centrale platforme og software, der gør kodning og andre opgaver lettere, hurtigere og mere organiseret.
Så hvis du forsøger kun at bruge SSH for at se en “Forbindelse nægtet” fejl, kan du begynde at føle dig bekymret. Dette er dog et almindeligt problem, og det er fuldstændigt muligt at løse det på egen hånd med bare en smule fejlfinding. Du kommer tilbage til at køre kommandoer på ingen tid.
I dette indlæg diskuterer vi, hvad SSH er, og hvornår vi skal bruge det. Derefter forklarer vi nogle almindelige årsager til, at din forbindelse kan blive afvist, herunder i PuTTY. Endelig giver vi nogle tip til fejlfinding.
Lad os dykke ind!
Hvad er SSH, og hvornår skal jeg bruge det?
Secure Shell (SSH), også nogle gange kaldet Secure Socket Shell, er en protokol til sikker adgang til dit websteds server via et usikret netværk. Med andre ord er det en måde at sikkert logge ind på din server eksternt med din foretrukne kommandolinje grænseflade:
I modsætning til File Transfer Protocol (FTP), som kun giver dig mulighed for at uploade, slette og redigere filer på din server, kan SSH udføre en lang række opgaver. For eksempel, hvis en fejl låser dig ud af dit WordPress-sted, kan du bruge SSH til at få adgang til det eksternt.
Denne protokol giver dig også mulighed for at bruge flere nøgle udvikler værktøjer, herunder:
- WP-CLI. WordPress-kommandolinjen. Du kan bruge det til en række opgaver, herunder nye installationer, bulk-plugin-opdateringer og mediefilimport.
- Composer. En PHP-pakke administrator. Det giver dig mulighed for at implementere flere rammer til brug i dit websteds kode ved at trække de nødvendige biblioteker og afhængigheder.
- Git. Et version control system, der bruges til at spore ændringer i kode. Dette er især nyttigt for teams af udviklere, der arbejder sammen om et enkelt projekt.
- npm. En JavaScript-pakkehåndtering. Det inkluderer en kommandolinje og JavaScript-software-registreringsdatabase. Bemærk: Kinsta-kunder har brug for en Enterprise-plan for at få adgang til denne funktion.
Det er vigtigt at bemærke, at brug af SSH er en avanceret færdighed. Generelt bør lay users af WordPress kontakte deres udviklere eller hostingudbydere for at få hjælp, snarere end at prøve at løse problemer med SSH selv.
Hvorfor nægtes min SSH-forbindelse? (5 grunde til tilslutningsfejl)
Desværre er der mange scenarier, der kan forekomme, mens du prøver at oprette forbindelse til din server via SSH, hvilket kan resultere i en fejl ved læsning af “Forbindelse nægtet”.
Nedenfor er nogle af de mest almindelige problemer, der muligvis forårsager problemer for dig.
1. Din SSH-service er nede
For at oprette forbindelse til din server med SSH, skal den køre en SSH-daemon – et program, der kører i baggrunden for at lytte til og acceptere forbindelser.
Hvis denne service er nede, kan du ikke oprette forbindelse til din server og modtage muligvis en fejlforbindelse, der blev nægtet:
Din server’s SSH-daemon kan være nede af en lang række årsager, herunder uventede trafik spikes, ressourcebrud eller endda et Distribueret afslag på tjeneste (DDoS) -angreb. Ud over de fejlfindingstrin, vi vil nævne nedenfor, kan du kontakte din hostingudbyder for at finde ud af årsagen til problemet.
Hvis du har mistanke om, at din SSH-service muligvis er nede, kan du køre denne kommando for at finde ud af:
sudo service ssh status
Hvis kommandolinjen returnerer en status ned, har du sandsynligvis fundet årsagen bag din forbindelsesfejl.
2. Du har de forkerte legitimationsoplysninger
Selvom det kan virke for simpelt til at være sandt, er det muligt, at du bare indtaster de forkerte legitimationsoplysninger, når du prøver at oprette forbindelse til din server. Der er fire oplysninger, der kræves for at køre SSH:
- Hostnavn. IP-adressen på den server, du prøver at oprette forbindelse til eller dit domænenavn.
- Brugernavn. Dit (S) FTP-brugernavn.
- Adgangskode. Din (S) FTP-adgangskode.
- Port. Standardporten er 22. Nogle hostingudbydere (inklusive Kinsta) ændrer imidlertid deres SSH-portnummer af sikkerhedsmæssige årsager. Hvis dette er tilfældet, skal du være i stand til at finde det ved at logge ind på dit MyKinsta dashboard.
Du kan også kontrollere for at se, hvilken port der bruges til SSH ved at køre denne kommando:
grep Port /etc/ssh/sshd_config
Kommandolinjen vil returnere den korrekte port.
Kontroller, at du indtaster de rigtige legitimationsoplysninger og tager muligheden for skrivefejl eller indtastning af den forkerte IP-adresse eller port.
3. Porten, du prøver at bruge, er lukket
En “port” er simpelthen det slutpunkt, som du er rettet til, når du opretter forbindelse til din server. Ud over at sikre dig, at du har den rigtige, vil du også tjekke, om den port, du prøver at bruge, er åben.
Enhver åben port er en sikkerhedssårbarhed, da hackere kan prøve at udnytte den og få adgang til serveren. Af denne grund er ubrugte havne ofte lukket for at forhindre angreb.
I tilfælde af at port 22, eller den brugerdefinerede SSH-port til din server, er blevet lukket, vil du sandsynligvis se en fejlforbindelse nægtet forbindelse. Du kan kontrollere, om porten lytter ved at køre denne kommando:
sudo netstat -plnt
Kommandolinjen skal returnere en liste over porte og deres respektive ”tilstande”. Du ønsker, at port 22’s tilstand skal være LISTEN. Hvis det ikke er tilfældet, skal du åbne porten igen for at oprette forbindelse til din server.
4. SSH er ikke installeret på din server
Som vi kort nævnte tidligere, bruger servere SSH-daemon til at lytte til og acceptere forbindelser. Derfor, hvis den server, du prøver at oprette forbindelse til, ikke har en installeret, vil du ikke kunne få adgang til den ved hjælp af SSH.
Generelt vil næsten alle hostingudbydere have SSH-dæmoner installeret som standard på deres servere. Dette særlige problem er mere almindeligt på localhost eller dedikerede servere.
5. Firewall-indstillinger forhindrer en SSH-forbindelse
Da åbne porte udgør en sikkerhedsrisiko, blokerer firewalls, der er installeret for at beskytte servere mod hackere, undertiden forbindelser til dem. Desværre betyder dette, at selv uskadelige brugere, der forsøger at SSH til deres servere, muligvis får en Forbindelse nægtet fejl som følge af firewall-indstillinger.
Hvis din opsætning ser ud til at være i orden, og du stadig ikke kan oprette forbindelse, skal du se på din firewalls regler. Du kan vise dem i din kommandolinje grænseflade med følgende kommandoer:
sudo iptables-save # display IPv4 rules
sudo ip6tables-save # display IPv6 rules
Dine resultater vil variere, men du vil kigge efter disse elementer for at bestemme, om din firewall blokerer SSH-forbindelser:
- dport 22: Dette henviser til destinationsporten, som for SSH normalt er port 22 (påmindelse: Kinsta bruger ikke dette portnummer).
- REJECT: Dette indikerer, at forbindelser afvises fra den angivne destination.
- DROP: Ligesom REJECT betyder det, at forbindelser til den relevante port blokeres.
Hvis du søger i resultaterne af kommandoerne ovenfor efter dport 22, skal du være i stand til at bestemme, om din firewall forhindrer en SSH-forbindelse. I så fald skal du ændre reglerne for at acceptere anmodninger.
Hvorfor siger PuTTY Forbindelse nægtet?
PuTTY er en SSH-klient. Hvis du er bekendt med FTP, er denne platform FileZilla svarende til SSH på Windows-maskiner. Med andre ord giver PuTTY brugere mulighed for at indtaste deres legitimationsoplysninger og starte en SSH-forbindelse:
Hvis du er en PuTTY-bruger og ser fejlen i forbindelse med afslag på forbindelse, er årsagen sandsynligvis en af de ovenfor anførte.
Dette er en SSH-forbindelsesfejl som enhver anden, og fejlfindingstips nedenfor skal fungere, uanset om du bruger PuTTY, Terminal eller et andet program til at oprette forbindelse til din server med SSH.
Hvordan fejler jeg SSH-forbindelsesfejl?
Når du oplever en SSH-forbindelsesfejl, er der et par trin, du kan tage for at fejlfinde den afhængigt af årsagen. Her er nogle tip til fejlfinding af årsagerne til en fejlforbindelse, som vi dækkede ovenfor:
- Hvis din SSH-service er nede. Kontakt din hostingudbyder for at se, hvorfor din SSH-service ikke kører. For localhost eller dedikerede servere kan du bruge kommandoen sudo service ssh restart for at prøve at få den til at køre igen.
- Hvis du indtastede de forkerte legitimationsoplysninger. Når du har dobbeltkontrolleret SSH-porten ved hjælp af kommandoen grep Port /etc/ssh/sshd_config, kan du prøve at oprette forbindelse igen med de rigtige detaljer.
- Hvis din SSH-port er lukket. Dette er normalt en bivirkning af en af de to grunde, der er anført nedenfor. Installer enten en SSH-dæmon på den server, du vil oprette forbindelse til, eller ændre dine firewall-regler for at acceptere forbindelser til din SSH-port.
- Hvis SSH ikke er installeret på din server. Installer et SSH-værktøj som OpenSSH på den server, du vil oprette forbindelse til ved hjælp af sudo apt install openssh-server command.
- Hvis din firewall blokerer din SSH-forbindelse. Deaktiver firewallreglerne, der blokerer for din SSH-forbindelse ved at ændre destinationsportens indstillinger til ACCEPT.
Hvis du forsøger at oprette forbindelse til din hostingudbyders server, kan det være klogere at kontakte support end at prøve at løse problemet selv. Brugere på localhost eller dedikerede servere kan muligvis finde yderligere support på mere avancerede fora, hvis ingen af ovenstående løsninger fungerer.
Resumé
At være i stand til at oprette forbindelse til din server med SSH er praktisk i en lang række situationer. Det kan gøre det muligt for dig at få adgang til dit websted, når du er låst ud af dit WordPress-dashboard, køre kommandoer via WP-CLI, spore ændringer i dit websteds kode med Git og mere.
Selvom der er flere årsager, der kan være bag din SSH-forbindelsesfejl, er disse nogle af de mest almindelige:
- Din SSH-service er nede.
- Du har de forkerte legitimationsoplysninger.
- Porten, du prøver at bruge, er lukket.
- SSH er ikke installeret på din server.
- Firewall-indstillinger forhindrer en SSH-forbindelse.