Hvordan feilsøke SSH -tilkoblinger

Hvordan feilsøke SSH -tilkoblinger
Denne opplæringen vil gå over noen raske metoder og teknikker du kan bruke til å diagnostisere forskjellige SSH -tilkoblinger, inkludert når du ikke kan koble deg til SSH, autentiseringsfeil og slikt.

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.