MERK: Før du kommer i gang, må du sørge for at enheten du ønsker å koble til er online, og feilen ikke er et resultat av at enheten ikke er tilgjengelig.
Utgave 1: SSH -tjenesten kjører ikke
En vanlig årsak til SSH -tilkoblingsfeil er tjenesten som ikke kjører på den eksterne verten. Dette kan være på grunn av Shutdown eller Service eller Service som ikke starter etter at systemet er omstart.
For å sjekke om SSH -tjenesten kjører, bruk System Manager ved å bruke kommandoen:
sudo systemctl status sshd
Kommandoen ovenfor skal rapportere om tjenesten kjører eller ikke, som vist på skjermbildene nedenfor.
Løsning
For å løse SSH -problemer forårsaket av at tjenesten ikke kjører, bruk systemet til å starte tjenesten. Hvis tjenesten svarer med feil, kan du sjekke logger og fikse problemene som er rapportert i loggen.
Bruk kommandoen nedenfor for å sjekke serviceloggene.
grep 'sshd'/var/log/authent.Logg
Bruk kommandoen nedenfor for å starte eller stoppe SSH -tjenesten ved å bruke SystemD.
sudo systemctl start sshd
Utgave 2: SSH på ikke-standardport
Det andre vanlige problemet når feilsøking av SSH-tilkoblinger er bruken av en ikke-standardport. Hvis SSH kjører på en annen port annet enn standardport 22, vil du ikke koble til den eksterne verten med mindre du eksplisitt spesifiserer porten som SSH kjører.
For å se porten som SSH kjører, bruker du et verktøy som NetStat som nedenfor:
[centos@centos8 ~] $ sudo netstat -ptln | grep ssh
TCP 0 0 0.0.0.0:56 0.0.0.0:* Lytt 1131/sshd
tcp6 0 0 ::: 56 :::* Lytt 1131/sshd
Ovennevnte utgang viser hvilken port SSH -tjenesten kjører på. I dette tilfellet er det port 56.
Løsning
For å løse dette problemet, kan du bruke informasjonen fra NetStat for eksplisitt å spesifisere porten i din SSH -kommando som:
ssh brukernavn@ip -p 56
Utgave 3: En annen tjeneste ved hjelp av samme port
En annen årsak til SSH -tilkoblingsfeil er hvis en annen tjeneste eller prosess også bruker samme port som SSH -tjenesten. For eksempel, hvis SSH eksplisitt er spesifisert for å kjøre på port 80 (forferdelig idé), kan en tjeneste som Apache bruke samme port.
For å se om en annen prosess bruker samme port som SSH, sjekk loggene ved å bruke kommandoen:
sudo journalctl -t sshd
Denne kommandoen skal returnere en feil som den som er vist nedenfor, noe som indikerer om en annen prosess bruker den SSH-bundne porten.
SSHD [110611]: Feil: Bind til port 80 på 0.0.0.0 mislyktes: adresse som allerede er i bruk
Det er bra å sikre at portbindingsfeilen er forårsaket av en annen tjeneste, ikke sikkerhetstiltak som Selinux.
Løsning
Det er forskjellige måter du kan bruke for å løse dette problemet. Disse inkluderer:
Den første er å binde SSH -tjenesten til en annen port. Du kan gjøre dette ved å redigere SSH -konfigurasjonsfilen. Endre for eksempel portoppføring til port 3009 som vist i kommandoene:
sudo nano/etc/ssh/sshd_config
Port 3009
En annen metode du kan bruke for å løse dette problemet er å stoppe tjenesten ved hjelp av SSH -porten. Stopp for eksempel Apache -tjenesten ved å bruke port 80 som:
sudo systemctl stopp httpd
sudo systemctl deaktiver httpd
Utgave 4: Brannmur
Hvis du har prøvd alle ovennevnte metoder og fremdeles ingen SSH -tilkobling, kan du gå videre til neste mulige årsak til problemet: Brannmurbegrensninger. Avhengig av brannmurmetoden du bruker (UFW eller iptables), må du sørge for at brannmuren tillater SSH -tilkoblinger.
Løsning
Brannmurregler er brede og kan variere avhengig av systemkonfigurasjonen. Dermed kan jeg ikke dekke alle aspekter. Følgende er imidlertid en enkel løsning for å sikre at SSH -tjenesten er tillatt på UFW -brannmuren.
sudo ufw tillater/tcp
Du kan også tilbakestille alle UFW -reglene og starte på nytt. Som lar deg feilsøke brannmurforbindelsene fra bunnen av.
sudo ufw reset
Utgave 5: pålogginger for funksjonshemmede passord
Noen ganger kan du konfigurere SSH for ikke å godta pålogging av passord og bare bruke offentlig nøkkel-autentisering. Som kan forårsake et problem hvis den offentlige nøkkelen ikke er tilgjengelig på serveren eller savner det private nøkkelparet ditt.
For å sjekke om passordpålogginger er tillatt, katter SSH -konfigurasjonen som:
[centos@centos8] $ sudo grep passordauthentication/etc/ssh/sshd_config
#PasswordAuthentication Ja
Passordauthentication Ja
# PasswordAuthentication. Avhengig av PAM -konfigurasjonen din,
# PAM -godkjenning, og aktiver deretter dette, men angi passordauthentication
Ovennevnte utdata viser at pålogging av passord er tillatt.
Løsning
For å løse problemet ovenfor, kan du bruke to metoder:
For det første, hvis du har verdien satt til nei, endrer du passordauthentiseringsverdien til ja og start SSH -tjenesten på nytt.
Den andre metoden er å lage et SSH-nøkkelverdipar og bruke det til å logge inn på serveren. For å lære hvordan du lager SSH-nøkkelverdipar, bruk følgende guide.
https: // linuxhint.com/find-ssh-public-key/
https: // linuxhint.com/use-ssh-copy-id-command/
Konklusjon
I denne raske guiden diskuterte vi store årsaker til SSH -tilkoblingsfeil og hvordan du kan løse dem. Selv om denne guiden dekker vanlige problemer, kan du finne feil som er spesifikke for systemet ditt basert på konfigurasjonen og tillatelsene.