Ta datasikkerhet på alvor og bruk SSH-nøkler for å få tilgang ved ekstern pålogging. De er en tryggere metode for tilkobling enn passord. Vi viser deg hvordan du genererer, installerer og bruker SSH-nøkler i Linux.
Hvorfor er passord problematisk?
Secure Shell (SSH) er den krypterte protokollen som brukes for å logge på brukerkontoer på eksterne Linux- eller Unix-baserte maskiner. Vanligvis er disse brukerkontoene beskyttet med passord. Når du logger deg på en ekstern maskin, må du angi både brukernavn og passord for kontoen du skal koble deg til.
Passord er den vanligste måten å sikre tilgang til dataressurser. Likevel har passordbasert sikkerhet sine svakheter. Folk velger enkle passord, deler passord, bruker samme passord på flere steder, og så videre.
SSH-nøkler er mye mer sikre, og når de er konfigurert, er de like enkle å bruke som passord.
Hva gjør SSH-nøkler sikre?
SSH-nøkler opprettes og benyttes i par. De to nøklene er forbundet og kryptografisk sikre. Den ene er din offentlige nøkkel, og den andre er din private nøkkel. De er koblet til din brukerkonto. Om flere brukere på samme maskin benytter SSH-nøkler, får de hvert sitt sett med nøkler.
Din private nøkkel er lagret i din hjemmekatalog (som regel), mens den offentlige nøkkelen er installert på den eksterne maskinen – eller maskinene – du skal ha tilgang til.
Det er essensielt at din private nøkkel er godt beskyttet. Hvis den kommer i uvedkommendes hender, er du like sårbar som om passordet ditt var avslørt. En fornuftig – og sterkt anbefalt – forholdsregel er å kryptere din private nøkkel på maskinen din med en solid passordfrase.
Den offentlige nøkkelen kan deles fritt uten at det går ut over sikkerheten din. Det er ikke mulig å finne den private nøkkelen ved å undersøke den offentlige. Den private nøkkelen kan kryptere meldinger som bare kan dekrypteres med den tilhørende private nøkkelen.
Når du sender en tilkoblingsforespørsel, bruker den eksterne maskinen sin kopi av den offentlige nøkkelen til å generere en kryptert melding. Meldingen inkluderer en sesjons-ID og annen metadata. Bare maskinen som har den private nøkkelen – din maskin – kan dekryptere denne meldingen.
Din maskin får tilgang til din private nøkkel og dekrypterer meldingen. Deretter sender den sin egen krypterte melding tilbake til den eksterne maskinen. Blant annet inkluderer denne krypterte meldingen sesjons-IDen som ble mottatt fra den eksterne maskinen.
Den eksterne maskinen vet nå at du er den du utgir deg for å være, fordi kun din private nøkkel kunne hente ut sesjons-IDen fra meldingen den sendte til din maskin.
Sikre at du har tilgang til den eksterne maskinen
Først, sørg for at du kan koble til og logge på den eksterne maskinen. Dette bekrefter at brukernavnet og passordet ditt har en gyldig konto på den eksterne maskinen, og at legitimasjonen din er korrekt.
Ikke start med SSH-nøkler før du har bekreftet at du kan koble til målmaskinen via SSH med passord.
I dette eksemplet logger en bruker med navnet dave seg på en maskin kalt wdzwdz. Han skal koble seg til en annen maskin kalt Sulaco.
Han skriver inn følgende kommando:
ssh [email protected]
Han blir bedt om passordet, skriver det inn og er koblet til Sulaco. Ledeteksten endres for å bekrefte dette.
Det er all bekreftelsen vi trenger. Så kan dave koble fra Sulaco med kommandoen exit:
exit
Han mottar en frakoblingsmelding, og ledeteksten går tilbake til [email protected]
Opprett et par SSH-nøkler
Disse instruksjonene ble testet på Ubuntu, Fedora og Manjaro-versjoner av Linux. I alle tilfeller var prosessen identisk, og det var ikke nødvendig å installere ekstra programvare på noen av testmaskinene.
For å generere SSH-nøkler, skriv følgende kommando:
ssh-keygen
Genereringsprosessen starter. Du vil bli spurt om hvor du vil at SSH-nøklene skal lagres. Trykk Enter for å akseptere standardplasseringen. Rettighetene i mappen sikrer den kun for ditt bruk.
Du vil nå bli bedt om en passordfrase. Vi anbefaler på det sterkeste at du skriver inn en passordfrase her. Og husk den! Du kan trykke Enter for å ikke ha noen passordfrase, men dette er ikke anbefalt. En passordfrase som består av tre eller fire urelaterte ord vil utgjøre en svært sikker passordfrase.
Du blir bedt om å skrive inn den samme passordfrasen på nytt for å bekrefte at du skrev det du trodde du skrev.
SSH-nøklene genereres og lagres.
Du kan ignorere «randomart» som vises. Noen eksterne maskiner kan vise sin tilfeldige kunst hver gang du kobler til. Tanken er at du vil merke det om den endrer seg, og dermed bli mistenksom fordi det antyder at SSH-nøklene for den serveren har blitt endret.
Installer den offentlige nøkkelen
Vi må installere den offentlige nøkkelen din på Sulaco, den eksterne maskinen, så den vet at den offentlige nøkkelen tilhører deg.
Vi gjør dette ved hjelp av kommandoen ssh-copy-id. Denne kommandoen etablerer en forbindelse til den eksterne maskinen som den vanlige ssh-kommandoen, men i stedet for å la deg logge inn, overfører den den offentlige SSH-nøkkelen.
ssh-copy-id [email protected]
Selv om du ikke logger deg på den eksterne maskinen, må du likevel autentisere deg med et passord. Den eksterne maskinen må identifisere hvilken brukerkonto den nye SSH-nøkkelen hører til.
Husk at passordet du må oppgi her er passordet for brukerkontoen du logger deg på. Dette er ikke den passordfrasen du nettopp har opprettet.
Når passordet er bekreftet, overfører ssh-copy-id din offentlige nøkkel til den eksterne maskinen.
Du kommer tilbake til ledeteksten på din maskin. Du er ikke koblet til den eksterne maskinen.
Koble til med SSH-nøkler
La oss følge rådet og prøve å koble til den eksterne maskinen.
ssh [email protected]
Siden tilkoblingsprosessen krever tilgang til din private nøkkel, og siden du har beskyttet SSH-nøklene dine med en passordfrase, må du oppgi passordfrasen for å fullføre tilkoblingen.
Skriv inn passordfrasen og klikk på Lås opp-knappen.
Når du har skrevet inn passordfrasen i en terminaløkt, trenger du ikke å skrive den inn igjen så lenge terminalvinduet er åpent. Du kan koble til og fra så mange eksterne økter du ønsker uten å skrive inn passordfrasen på nytt.
Du kan krysse av i boksen for «Lås opp denne nøkkelen automatisk når jeg er pålogget», men det vil redusere sikkerheten. Hvis du lar maskinen være uten tilsyn, kan hvem som helst opprette tilkoblinger til de eksterne maskinene som har den offentlige nøkkelen din.
Når du har skrevet inn passordfrasen, er du koblet til den eksterne maskinen.
For å bekrefte prosessen nok en gang, koble fra med kommandoen exit, og koble til den eksterne maskinen på nytt fra det samme terminalvinduet.
ssh [email protected]
Du skal nå være koblet til den eksterne maskinen uten behov for passord eller passordfrase.
Ingen passord, men forbedret sikkerhet
Eksperter innen datasikkerhet snakker ofte om noe som kalles sikkerhetsfriksjon. Det refererer til den lille ubehageligheten du må tolerere for å oppnå økt sikkerhet. Det kreves som regel et eller to ekstra trinn for å ta i bruk en sikrere arbeidsmetode, og mange misliker det. Faktisk foretrekker de gjerne lavere sikkerhet for å unngå friksjon. Det er bare slik mennesker fungerer.
Med SSH-nøkler får du både økt sikkerhet og bedre brukervennlighet. Det er en klar vinn-vinn-situasjon.