Hopp til hovedinnhold

Feilsøking og vanlige problemer med SSH

Kapittel 17

Feil med SSH-tilkobling kan skyldes mange ulike årsaker, men de fleste faller innenfor noen få hovedområder: tjenesten kjører ikke, feil i konfigurasjon, brannmurblokker, feil brukerkonto, eller problemer med nøkler og fingerprint. Dette kapittelet samler de vanligste problemene og hvordan de løses trinn for trinn.

Grunnleggende kontroller

Sjekk at SSH-tjenesten kjører

systemctl status sshd

Hvis den ikke kjører, start den manuelt

sudo systemctl restart sshd

Sjekk at tjenesten er aktiv og uten feil. Hvis du ser "inactive" eller "failed", må du inspisere loggene.

Se loggene for SSH

journalctl -u ssh

Naviger i loggen med piltastene, og avslutt med q.

Feil i config-filer Feil skyldes ofte skrivefeil i konfigurasjonsfiler som /etc/ssh/sshd_config. Sjekk loggene nøye etter oppstart for feilmeldinger, rett eventuelle feil og start tjenesten på nytt.

Brannmur og porter

Feil kan oppstå hvis brannmuren blokkerer porten SSH kjører på.

Sjekk status på brannmuren

sudo ufw status

Sjekk hvilken port SSH kjører på

grep ^Port /etc/ssh/sshd_config

Hvis porten er endret, må du sørge for at den er åpnet i UFW

sudo ufw allow 22/tcp

eller, hvis du bruker en annen port

sudo ufw allow 3719/tcp

Brukerproblemer

Dersom en bruker ikke får logget inn, kan årsaken være låst konto, feil gruppe eller feil autentisering.

Sjekk om brukeren er låst i shadow-filen

sudo cat /etc/shadow | grep brukernavn

Hvis linjen inneholder et utropstegn (!) før passordfeltet, er kontoen låst.

Lås opp kontoen

sudo usermod -U brukernavn

Hvis brukeren eksisterer og ikke er låst, sjekk konfigurasjonen for om brukeren eller gruppen er blokkert i SSH. Se etter AllowUsers, DenyUsers, AllowGroups, DenyGroups i /etc/ssh/sshd_config eller filer i /etc/ssh/sshd_config.d/.

Feil passord eller nøkkel Bekreft at brukeren skriver riktig passord, eller at korrekt nøkkel er installert på serveren i ~/.ssh/authorized_keys med riktige rettigheter (600).

Fingerprint og known hosts

Hvis brukeren får advarsel om nytt server fingerprint, må dette alltid undersøkes før man godtar det. Dette kan skyldes

  • Serveren er reinstallert
  • IP eller DNS peker til ny maskin
  • Potensiell “man-in-the-middle”-situasjon

Hvis alt er i orden, slett den gamle fingeravtrykkoppføringen

ssh-keygen -R servernavn

eller manuelt i

~/.ssh/known_hosts

Legg deretter inn fingerprint på nytt

ssh-keyscan servernavn >> ~/.ssh/known_hosts

Klientproblemer

Sjekk klientkonfigurasjon

~/.ssh/config

og

/etc/ssh/ssh_config

Se etter feil syntaks eller feil parametere (for eksempel feil ProxyJump, feil nøkkelsti, eller ugyldige alternativer).

Sjekk også at klienten kan nå serverens hostname eller IP-adresse med ping eller nslookup.

ping servernavn

Hvis du får “Connection timed out” kan årsaken være nettverksfeil eller brannmur.

Vanlige feil og løsninger

Problem: Connection refused Årsak: SSH-tjenesten kjører ikke, feil port eller blokkert av brannmur. Løsning: Sjekk status, port og UFW.

Problem: Permission denied (publickey) Årsak: Feil eller manglende nøkkel, eller feil filrettigheter. Løsning: Sjekk at riktig nøkkel ligger i ~/.ssh/authorized_keys og at filrettigheter er korrekte

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Problem: Host key verification failed Årsak: Fingerprint endret. Løsning: Fjern gammel oppføring fra known_hosts og legg inn på nytt.

Problem: User not allowed to log in Årsak: Bruker eller gruppe er blokkert i config. Løsning: Sjekk AllowUsers og DenyUsers i /etc/ssh/sshd_config.

Problem: Broken pipe (forbindelsen faller ut) Årsak: Ustabil nettverkstilkobling. Løsning: Bruk Mosh (Mobile Shell) for mer stabil forbindelse over mobile nettverk.

Ekstra tips

Test konfigurasjon før restart for å unngå at du låser deg ute

sudo sshd -t

Dette sjekker at konfigurasjonsfilene ikke inneholder feil.

For mer detaljert feilsøking, bruk verbose-modus i SSH-klienten

ssh -v brukernavn@server
# eller
ssh -vvv brukernavn@server

Dette viser nøyaktig hvor i autentiseringsprosessen feilen oppstår.

Høydepunkt – viktige kommandoer

Sjekk SSH-tjenesten

systemctl status sshd

Start tjenesten på nytt

sudo systemctl restart sshd

Se logger

journalctl -u ssh

Sjekk port

grep ^Port /etc/ssh/sshd_config

Sjekk brannmur

sudo ufw status

Sjekk om bruker er låst

sudo cat /etc/shadow | grep brukernavn

Lås opp bruker

sudo usermod -U brukernavn

Fjern gammel fingerprint

ssh-keygen -R servernavn

Legg inn fingerprint på nytt

ssh-keyscan servernavn >> ~/.ssh/known_hosts

Test konfigurasjon for feil

sudo sshd -t

Feilsøk med verbose-modus

ssh -v brukernavn@server
Robert Kristoffersen
Fullstack-utvikler • Webno