Sådan opsætter du en SSH-nøgle på Linux

SSH er en fantastisk teknologi; du kan bruge den til at skjule VPN-trafik med den, sikre din forbindelse til websteder og mere. Det eneste problem er, at hver gang du prøver at logge ind på en ekstern maskine, skal du indtaste din adgangskode, og det kan være kedeligt. Hvis du er en udvikler, der ønsker at oprette forbindelse til mange maskiner over SSH på én gang med et Bash-script, eller bare en person, der bruger Secure Shell og er træt af at indtaste adgangskoder, er der en løsning: SSH uden adgangskode. Denne proces involverer generering af en sikker SSH-nøgle på værtsmaskinen og deling af den som en måde at få adgang til pc’en. Dette vil give alle med nøglen mulighed for at logge ind, selvom de ikke kender adgangskoden. Sådan får du det i gang.

Hvad er SSH-nøgler?

En SSH-nøgle er en unik identifikationsfil, der bruges med Secure Shell. Formålet med disse nøgler er at give en unik identitet til brugeren og markere dem som “pålidelige”, når de logger ind. Disse nøgler i sig selv er mere end filer, der beviser nogens identitet. Faktisk lader SSH brugere logge ind med en nøgle i stedet for en adgangskode. Det betyder, at i stedet for at blive tvunget til at indtaste en adgangskode, hver gang du logger på via SSH, bruger du SSH-nøglen.

  Sådan laver du en virtuel maskine i VirtualBox på Linux

SSH-nøglen er placeret sikkert et sted på din Linux-installation, og derfra kan du logge ind på fjernmaskinen så meget du vil uden et kodeord.

Generering af sikre SSH-nøgler

Generering af en sikker SSH-nøgle kræver først, at SSH er oppe og køre. Forstå, at dette ikke nødvendigvis betyder, at du skal have en SSH-server. Bare at de grundlæggende SSH-værktøjer og -teknologier kører på din Linux-pc. Ikke sikker på, hvordan man konfigurerer SSH? Følg vores guide om det her.

Generer altid SSH-nøglerne på systemet, der hoster SSH-serveren. Forsøg ikke at generere dem på serveren, der ikke er vært for en SSH-session, og kopier den over til SSH-værtsmaskinen. Det vil ikke virke.

For at starte nøglegenereringsprocessen skal du åbne en terminal. Kør inde i terminalvinduet:

ssh-keygen -t rsa

Hvis du kører ssh-keygen, udskrives “Genererer offentlig/privat rsa-nøglepar”. Det betyder, at systemet genererer dig både en offentlig nøgle såvel som en privat nøgle til brug. Offentlige nøgler er dem, alle kan bruge, og du burde have det fint med at give ud. En privat nøgle er på den anden side noget, du aldrig bør dele med nogen. Deraf navnet “privat”.

  Sådan bruger du hvilken kommando på Linux

Nøglerne gemmer sig selv på /home/brugernavn/.ssh/id_rsa.

Bemærk: SLET IKKE ~/.ssh-mappen, da den indeholder dine nøgler. Hvis du manipulerer med denne mappe på nogen måde og derefter prøver at logge på denne maskine eksternt, vil SSH-prompten mislykkes. Det vil også udskrive en advarsel og låse dig ude.

SSH-taster på fjernmaskine

Nu hvor SSH-nøglerne (både offentlige og private) er oprettet og klar til brug, skal du kopiere dem til det system, du vil logge ind fra. Det er vigtigt, at du gentager denne proces på alle de maskiner, du planlægger at logge på over SSH. Ellers skal de, der ikke har nøglen, logge ind med adgangskodemetoden.

Følg dette eksempel for at tilføje nøglerne til fjernsystemet. Sørg for, at du gør dette fra værtsmaskinen over SSH.

ssh [email protected] mkdir -p .ssh

Ved at køre denne ssh-kommando oprettes en skjult ~/.ssh-mappe i fjernmaskinens hjemmemappe (med den bruger, der blev brugt til at logge på). Denne mappe er vigtig, da det er her, vi kopierer de nygenererede SSH-nøglefiler.

For at kopiere SSH-nøglefilerne over, kør endnu en kommando fra SSH-værtsmaskinen til den fjernmaskine, der har brug for nøglerne:

cat .ssh/id_rsa.pub | ssh [email protected] 'cat >> .ssh/authorized_keys'

Kopieringen vil tage et par sekunder, afhængigt af netværkets hastighed. Når det er færdigt, vil fjern-pc’en have de genererede nøgler og vil være i stand til at logge ind på SSH-værts-pc’en uden en adgangskode.

  Sådan lytter du til Pandora Radio på Linux

Sikkerhedskopiering af SSH-nøgler

SSH-nøgler er nyttige ting, og hver enkelt er unik. Det er på grund af dette, at sikkerhedskopiere dem er den bedste fremgangsmåde. Problemet er, at hvis du gemmer den et andet sted, kan nogen finde din SSH-nøgle, behold den og brug den selv. Så spørgsmålet er, hvad er en god måde at sikkerhedskopiere en SSH-nøgle på? Kryptering.

Den hurtigste, mest effektive (og nemmeste måde) at kryptere på er at bruge GnuPG. Værktøjet i sig selv er indbygget i de fleste af de krypteringsværktøjer, der allerede er på Linux, og er go-to, når kryptering af filer bringes frem. For at installere GnuPG skal du åbne en terminal og søge efter “gpg” i din pakkehåndtering. Programmet skulle være nemt at finde, selv på meget obskure Linux-distributioner.

Når GPG er oppe og køre, skal du starte krypteringsprocessen ved at komprimere din ~/.ssh-mappe til tar-arkivfil. Hvis du gør dette, er det ikke nødvendigt at kryptere hver enkelt fil i ~/.ssh-mappen.

tar -czvf ssh-stuff.tar.gz /home/username/.ssh

Når komprimeringen er færdig, skal du starte krypteringsprocessen.

Bemærk: Før du krypterer, skal du køre gpg i terminalen for at generere en ny nøglering.

gpg -c ssh-stuff.tar.gz

Når krypteringsprocessen er fuldført, udsender GnuPG en fil med etiketten “ssh-stuff.tar.gz.gpg”. Du er velkommen til at slette den originale, ulåste version af filen. Gør følgende for at dekryptere dit backup-arkiv:

gpg ssh-stuff.tar.gz.gpg