Gå til innholdet

Cookie-innstillinger

Velg hvilke typer cookies du tillater. Du kan når som helst endre valget via Cookie-innstillinger nederst på hver side. Personvernerklæring

Nødvendige

Alltid på

Trengs for å logge inn, beholde handlekurven og huske valgene dine. Disse er alltid på.

Hvilke cookies?
  • weboke_sessie, weboke_klant, weboke_remember: økten din og at du forblir innlogget
  • weboke_basket: handlekurven din
  • wkBtwIncl: visning av priser med eller uten mva.
  • wok_cookies: cookievalget ditt, 12 måneder

Måler hvilken annonse som fører til et besøk eller en bestilling, slik at vi ikke betaler for annonser som ikke gir noe.

Hvilke cookies?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), opptil 90 dager
  • OpenAI Ads, annonser i ChatGPT
  • wok_aff: hvilken partner som henviste deg til oss (partnerprogram), 60 dager

4,6

Land og språk

Hvert land har sin egen nettside, med priser og mva. for det landet.

Vis

Den første SSH-innloggingen

Modul 1: Din første server · Lesetid: 10 minutter

Læringsmål: Etter denne leksjonen kan du logge inn på serveren din med SSH for første gang, kontrollere fingeravtrykket til serveren før du stoler på den, og du vet hva du gjør når du får advarselen om at serverens identitet har endret seg.

Nøkkelbegreper: SSH, klient og server, port 22, versjonsbanner, host key, fingeravtrykk (SHA256), known_hosts, trust on first use, "REMOTE HOST IDENTIFICATION HAS CHANGED", PowerShell og Terminal

Hva SSH er

SSH (Secure Shell) er den krypterte forbindelsen du bruker til å administrere en server på avstand. Du skriver på din egen datamaskin, og kommandoene kjøres på serveren. Alt som går over linjen, også passordet ditt, er kryptert.

Det er to sider:

  • SSH-klienten på din egen datamaskin: programmet ssh. På macOS og Linux følger det med som standard. På Windows 10 (fra versjon 1809) og Windows 11 er OpenSSH-klienten en del av Windows; du bruker den i PowerShell eller Windows Terminal. Mangler den, legger du den til via Innstillinger, Valgfrie funksjoner, "OpenSSH-klient". Programmer med vinduer, som PuTTY, fungerer også, men i dette kurset bruker vi ssh.
  • SSH-serveren på VPS-en: programmet sshd (fra OpenSSH). Det lytter som standard på port 22.

Logge inn

Du logger inn med et brukernavn og adressen til serveren:

PS C:\Users\anna> ssh root@192.0.2.10

Eller med et navn, hvis du har lagt det inn i DNS (leksjon 7.1):

anna@laptop:~$ ssh root@web1.example.com

Første gang ser du noe som dette:

The authenticity of host '192.0.2.10 (192.0.2.10)' can't be established.
ED25519 key fingerprint is SHA256:Xq3aTnPpC0m1o4cJ2kVqY8mWb7rZs5dLfE6hUyN9tKs.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

Dette er det viktigste øyeblikket i denne leksjonen. Ikke skriv yes i blinde.

Host key og fingeravtrykket

Hver SSH-server har én eller flere host keys: nøkkelpar som serveren bruker til å bevise hvem den er. De offentlige delene ligger på serveren i /etc/ssh/, for eksempel /etc/ssh/ssh_host_ed25519_key.pub. Ved hver tilkobling viser serveren at den har den hemmelige delen.

Et fingeravtrykk er et kort sammendrag (en hash) av en slik offentlig nøkkel. OpenSSH viser som standard SHA256-formen: SHA256: etterfulgt av 43 tegn.

Spørsmålet "Are you sure you want to continue connecting?" betyr: datamaskinen din kjenner ikke denne serveren ennå. Hvem garanterer at du snakker med din VPS og ikke med noen som fanger opp trafikken? Ingen, med mindre du sammenligner fingeravtrykket med en pålitelig kilde.

Den kilden er konsollen hos leverandøren din (leksjon 1.2). Der snakker du ikke med serveren over nettverket. Logg inn i konsollen og hent fingeravtrykket:

root@web1:~# ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub
256 SHA256:Xq3aTnPpC0m1o4cJ2kVqY8mWb7rZs5dLfE6hUyN9tKs root@web1 (ED25519)

Stemmer dette nøyaktig med det klienten viser, skriver du yes. Du kan også lime inn selve fingeravtrykket i stedet for yes; da sammenligner ssh det for deg. Avviker det, stopper du og finner ut hvorfor (feil IP-adresse, serveren er installert på nytt, eller noe mer alvorlig).

Se på typen: klienten oppgir typen (ED25519, ECDSA eller RSA). Sammenlign fingeravtrykket av samme type. Mange images skriver også fingeravtrykkene til konsollen ved første oppstart (cloud-init), mellom linjer som BEGIN SSH HOST KEY FINGERPRINTS.

known_hosts og trust on first use

Skriver du yes, ser du:

Warning: Permanently added '192.0.2.10' (ED25519) to the list of known hosts.

Klienten lagrer nøkkelen i ~/.ssh/known_hosts (på Windows C:\Users\<naam>\.ssh\known_hosts). Fra nå av sammenligner den automatisk ved hver tilkobling. Denne modellen heter trust on first use (TOFU): første gang må du kontrollere selv, deretter passer klienten på.

Derfor er den første kontrollen så viktig: stoler du på en feil nøkkel, advarer klienten deg aldri mer etterpå.

Jobber du selv på en datamaskin med Debian eller Ubuntu, er navnene i known_hosts hashet som standard (HashKnownHosts yes i /etc/ssh/ssh_config), så du ser ingen lesbare IP-adresser der. På Windows og macOS står de lesbart. Søk fungerer overalt med:

anna@laptop:~$ ssh-keygen -F 192.0.2.10
# Host 192.0.2.10 found: line 3
|1|kP9...= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA...

"REMOTE HOST IDENTIFICATION HAS CHANGED"

Noen ganger ser du denne advarselen:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
...
Host key verification failed.

Serveren viser en annen nøkkel enn den klienten din kjenner. ssh nekter da å koble til. Det finnes to typer årsaker:

NormaltMistenkelig
Du har installert VPS-en på nytt (nye host keys)Du har ikke endret noe, og likevel er nøkkelen annerledes
IP-adressen er gitt til en annen serverDu sitter på et ukjent wifi-nettverk
Du har bevisst byttet ut host keysFingeravtrykket i konsollen avviker fra det klienten ser nå

Finnes det en normal forklaring, kontrollerer du fingeravtrykket i konsollen på nytt, og først deretter fjerner du den gamle linjen:

anna@laptop:~$ ssh-keygen -R 192.0.2.10
# Host 192.0.2.10 found: line 3
/home/anna/.ssh/known_hosts updated.

Ved neste tilkobling får du igjen spørsmålet fra første gang, og du kontrollerer på nytt. Sett aldri StrictHostKeyChecking no i innstillingene dine for å bli kvitt advarselen: da slår du av nettopp den beskyttelsen det handler om.

Versjonsbanneret

Før noe krypteres, sender klient og server hverandre en tekstlinje: versjonsbanneret. Det er synlig for alle på internett. Du ser det med ssh -v:

anna@laptop:~$ ssh -v root@192.0.2.10 2>&1 | grep "remote software"
debug1: Remote protocol version 2.0, remote software version OpenSSH_9.6p1 Ubuntu-3ubuntu13.5

Her forteller serveren hvilken protokoll (2.0) og hvilken programvare den bruker. Debian og Ubuntu legger til pakkeversjonen. Det er ingen hemmelighet du må skjule: angripere prøver uansett alt, og du beskytter deg med oppdateringer (modul 4), ikke med et annet banner. Praktisk er det likevel: på banneret ser du utenfra om serveren din faktisk kjører den oppdaterte versjonen.

På AlmaLinux og Rocky Linux

Innlogging og fingeravtrykk fungerer på samme måte. Tjenesten heter sshd i stedet for ssh (systemctl status sshd). Banneret inneholder ikke noe distribusjonsnavn, bare OpenSSH-versjonen.

Sammendrag

  • SSH er den krypterte forbindelsen til serveren din; ssh er klienten, sshd er serveren på port 22.
  • Ved første tilkobling viser klienten fingeravtrykket til host key. Sammenlign det med utdataene fra ssh-keygen -lf i konsollen før du skriver yes.
  • Klienten lagrer nøkkelen i ~/.ssh/known_hosts og advarer deg selv heretter (trust on first use).
  • "REMOTE HOST IDENTIFICATION HAS CHANGED" er normalt etter en ny installasjon; ellers er det mistenkelig. Fjern en gammel linje bare etter kontroll, med ssh-keygen -R.
  • Versjonsbanneret er offentlig; beskyttelse kommer fra oppdateringer, ikke fra å skjule.

Quiz

1. Hva sammenligner du fingeravtrykket som ssh viser ved første tilkobling med?



2. Hva gjør ~/.ssh/known_hosts?



3. Du har installert VPS-en din på nytt og får "REMOTE HOST IDENTIFICATION HAS CHANGED". Hva er riktig rekkefølge?



4. Hvorfor er den første kontrollen så viktig ved trust on first use?



5. Hva viser versjonsbanneret til en SSH-server?



Oppgave

Oppgave Z1.3: SSH-banner og fingeravtrykk for serveren din. Fyll inn adressen til serveren din, programvareversjonen fra banneret (for eksempel OpenSSH_9.6p1) og ED25519-fingeravtrykket du hentet i konsollen med ssh-keygen -lf. Programmet kobler til SSH-porten din én gang, leser banneret og host key, og sammenligner. Det logger ikke inn.

Oppgave Z1.3: SSH-banner og fingeravtrykk for serveren din

Vi logger ikke inn og prøver ikke noe passord eller nøkkel. Først viser du at serveren er din: klikk på "Vis koden min" og legg en fil /.well-known/weboke-cursus-<code>.txt med bare den koden på webserveren til vertsnavnet ditt. Vi henter den direkte fra hver IP-adresse vi sjekker (IPv4 og IPv6 hver for seg); en TXT-post teller ikke her. Kontrollen kommer fra heavy.webawere.nl (185.158.167.16 og 2a07:ae80:100:0:185:158:167:16), ikke fra webserveren vår. Bare for påmeldte kursdeltakere; høyst 6 kontroller per time per server. I denne oppgaven åpner vi én tilkobling og leser bare banneret og nøkkelen til serveren; det havner ikke noe innloggingsforsøk i loggen din.





Det du fyller inn, og det vi finner, lagrer vi ikke. Nettleseren din husker svarene dine og om du har bestått oppgaven. Er du logget inn, lagrer vi kun at du har (nesten) bestått oppgaven i Mine kurs; der kan du også slette det.

Les mer

Et øyeblikk …

Sett opp domenene dine

Ordne for hvert domene navnetjenerne, koblingen til hostingen din og hvem som blir innehaver.

Laster inn domenene dine…