Linux-bærbar datamaskin som viser en skal-ledetekst

Ta cybersecurity på alvor og bruk SSH-nøkler for å få tilgang til eksterne pålogginger. De er en sikrere måte å koble til på enn passord. Vi viser hvordan du genererer, installerer og bruker SSH-nøkler i Linux.

Hva er galt med passord?

Secure shell (SSH) er den krypterte protokollen som brukes til å logge på brukerkontoer på eksterne Linux- eller Unix-lignende datamaskiner. Vanligvis er slike brukerkontoer sikret ved hjelp av passord. Når du logger deg på en ekstern datamaskin, må du oppgi brukernavn og passord for kontoen du logger på.

Passord er det vanligste middelet for å sikre tilgang til databehandlingsressurser. Til tross for dette har passordbasert sikkerhet sine feil. Folk velger svake passord, deler passord, bruker det samme passordet på flere systemer og så videre.

SSH-nøkler er mye sikrere, og når de først er konfigurert, er de like enkle å bruke som passord.

Hva sikrer SSH-nøkler?

SSH-nøkler opprettes og brukes parvis. De to nøklene er koblet og kryptografisk sikre. Den ene er din offentlige nøkkel, og den andre er din private nøkkel. De er knyttet til brukerkontoen din. Hvis flere brukere på en enkelt datamaskin bruker SSH-nøkler, vil de motta hvert sitt par nøkler.

Din private nøkkel er installert i hjemmemappen din (vanligvis), og den offentlige nøkkelen er installert på den eksterne datamaskinen - eller datamaskiner - som du trenger tilgang til.

Din private nøkkel må holdes trygg. Hvis det er tilgjengelig for andre, er du i samme posisjon som om de hadde oppdaget passordet ditt. En fornuftig - og sterkt anbefalt - forholdsregel er at din private nøkkel blir kryptert på datamaskinen din med en robust passordfrase.

Den offentlige nøkkelen kan deles fritt uten kompromisser for sikkerheten din. Det er ikke mulig å bestemme hva den private nøkkelen er fra en undersøkelse av den offentlige nøkkelen. Den private nøkkelen kan kryptere meldinger som bare den private nøkkelen kan dekryptere.

Når du sender en tilkoblingsforespørsel, bruker den eksterne datamaskinen sin kopi av den offentlige nøkkelen til å opprette en kryptert melding. Meldingen inneholder en økt-ID og andre metadata. Bare datamaskinen som er i besittelse av den private nøkkelen - datamaskinen din - kan dekryptere denne meldingen.

Datamaskinen din får tilgang til din private nøkkel og dekrypterer meldingen. Den sender deretter sin egen krypterte melding tilbake til den eksterne datamaskinen. Denne krypterte meldingen inneholder blant annet økt-IDen som ble mottatt fra den eksterne datamaskinen.

Den eksterne datamaskinen vet nå at du må være den du sier at du er fordi bare din private nøkkel kunne trekke ut økt-ID-en fra meldingen den sendte til datamaskinen din.

Sørg for at du får tilgang til den eksterne datamaskinen

Forsikre deg om at du eksternt kan koble deg til og logge på den eksterne datamaskinen. Dette viser at brukernavnet og passordet ditt har en gyldig konto satt opp på den eksterne datamaskinen, og at legitimasjonen din er korrekt.

Ikke prøv å gjøre noe med SSH-nøkler før du har bekreftet at du kan bruke SSH med passord for å koble deg til måldatamaskinen.

I dette eksemplet er en person med en brukerkonto kalt dave logget inn på en datamaskin som heter howtogeek. De kommer til å koble seg til en annen datamaskin som heter Sulaco.

De skriver inn følgende kommando:

ssh dave @ sulaco
ssh dave @ sulaco i et terminalvindu

De blir bedt om passordet sitt, de oppgir det, og de er koblet til Sulaco. Kommandolinjens ledetekst endres for å bekrefte dette.

bruker dave koblet til sulaco ved hjelp av ssh og et passord

Det er all bekreftelsen vi trenger. Så bruker dave kan koble seg fra Sulaco med exit-kommandoen:

exit
brukeren dave koblet fra sulaco

De mottar frakoblingsmeldingen, og ledeteksten kommer tilbake til dave @ howtogeek.

RELATERT: Slik kobler du til en SSH-server fra Windows, macOS eller Linux

Opprette et par SSH-nøkler

Disse instruksjonene ble testet på Ubuntu, Fedora og Manjaro distribusjoner av Linux. I alle tilfeller var prosessen identisk, og det var ikke behov for å installere noen ny programvare på noen av testmaskinene.

For å generere SSH-nøklene, skriver du følgende kommando:

ssh-keygen
ssh-keygen i et terminalvindu

Generasjonsprosessen starter. Du blir spurt om hvor du vil at SSH-nøklene skal lagres. Trykk Enter-tasten for å godta standardplasseringen. Tillatelsene i mappen vil sikre den bare for din bruk.

Bekreftelse av lagringssted for ssh-nøkkel i et terminalvindu

Du vil nå bli bedt om en passordfrase. Vi anbefaler deg på det sterkeste å oppgi en passordfrase her. Og husk hva det er! Du kan trykke på Enter for å ikke ha noen passordfrase, men dette er ikke en god idé. En passordfrase sammensatt av tre eller fire sammenkoblede ord, sammensveiset, vil utgjøre en veldig robust passord.

Spør om passord i et terminalvindu

Du blir bedt om å legge inn den samme passordfrasen en gang til for å bekrefte at du har skrevet det du trodde du hadde skrevet.

SSH-tastene genereres og lagres for deg.

Nøkkelgenerering fullført og tilfeldig kunst vises i et terminalvindu

Du kan ignorere "randomart" som vises. Noen eksterne datamaskiner kan vise deg deres tilfeldige kunst hver gang du kobler til. Tanken er at du vil gjenkjenne om den tilfeldige kunsten endres, og være mistenksom overfor tilkoblingen fordi det betyr at SSH-tastene for den serveren er endret.

Installere den offentlige nøkkelen

Vi må installere din offentlige nøkkel på Sulaco, den eksterne datamaskinen, slik at den vet at den offentlige nøkkelen tilhører deg.

Vi gjør dette ved å bruke ssh-copy-id-kommandoen. Denne kommandoen kobler til den eksterne datamaskinen som den vanlige ssh-kommandoen, men i stedet for å la deg logge på, overfører den den offentlige SSH-nøkkelen.

ssh-copy-id dave @ sulaco
ssh-copy-id dave @ sulaco

Selv om du ikke logger på den eksterne datamaskinen, må du fremdeles autentisere ved hjelp av et passord. Den eksterne datamaskinen må identifisere hvilken brukerkonto den nye SSH-nøkkelen tilhører.

Merk at passordet du må oppgi her er passordet for brukerkontoen du logger deg på. Dette er ikke passordet du nettopp har opprettet.

ssh-copy-id med passordprompt i et terminalvindu

Når passordet er bekreftet, overfører ssh-copy-id din offentlige nøkkel til den eksterne datamaskinen.

Du blir returnert til datamaskinens ledetekst. Du blir ikke koblet til den eksterne datamaskinen.

pulnøkkel overført vellykket i et terminalvindu

Koble til ved hjelp av SSH-nøkler

La oss følge forslaget og prøve å koble til den eksterne datamaskinen.

ssh dave @ sulaco
ssh dave @ sulaco i et terminalvindu

Fordi tilkoblingsprosessen vil kreve tilgang til din private nøkkel, og fordi du beskyttet SSH-nøklene bak en passordfrase, må du oppgi passordfrasen din slik at forbindelsen kan fortsette.

passordfrase-dialogboks

Skriv inn passfrasen din og klikk på Lås opp-knappen.

Når du har tastet inn passfrasen din i en terminaløkt, trenger du ikke å angi den igjen så lenge du har det terminalvinduet åpent. Du kan koble til og koble fra så mange eksterne økter du vil, uten å angi passordfrasen din igjen.

Du kan merke av i avmerkingsruten for alternativet “Lås opp denne nøkkelen automatisk når jeg er logget inn”, men det vil redusere sikkerheten din. Hvis du lar datamaskinen være uten tilsyn, kan alle opprette forbindelser til eksterne datamaskiner som har din offentlige nøkkel.

Når du har angitt passordfrasen, er du koblet til den eksterne datamaskinen.

tilkobling ekstern datamaskin i et terminalvindu

For å bekrefte prosessen en gang til ende, koble fra med exit-kommandoen og koble til den eksterne datamaskinen på nytt fra samme terminalvindu.

ssh dave @ sulaco
ssh tastetilkobling og frakobling i et terminalvindu

Du vil være koblet til den eksterne datamaskinen uten behov for passord eller passordfrase.

Ingen passord, men forbedret sikkerhet

Cybersecurity-eksperter snakker om en ting som heter sikkerhetsfriksjon. Det er den smerten du trenger å gjøre for å få ekstra sikkerhet. Det er vanligvis noen ekstra trinn eller to for å ta i bruk en sikrere arbeidsmetode. Og de fleste liker ikke det. De foretrekker faktisk lavere sikkerhet og mangelen på friksjon. Det er menneskets natur.

Med SSH-nøkler får du økt sikkerhet og en økt bekvemmelighet. Det er en klar vinn-vinn.