English version of this page

Generering av SSH-n?kler

Slik lager du et nytt SSH-n?kkelpar. Metoden fungerer p? Linux, macOS og Windows 10 eller nyere med OpenSSH-klient.

1. Sjekk eksisterende n?kler

F?r du lager nytt ssh-n?kkelpar b?r du sjekke om du har noen fra f?r slik at du ikke skriver over disse.

[user@host ~]$ cd ~/.ssh

[user@host .ssh]$ ls -al id_*
-rw------- 1  user  user  1679 jul   3  2007 id_rsa
-rw-r--r-- 1  user  user   389 jul   3  2007 id_rsa.pub
[user@host .ssh]$ 

Her finnes det gamle rsa-n?kler, disse b?r erstattes av nyere ed25519-n?kler. De gamle n?klene kan godt ligge der til du er sikker p? at alt virker med nye, evt. s? kan de tas kopi av eller flyttes til en undermappe s? de kan hentes frem om det er behov for de senere.

2. Generere moderne ed25519-n?kkel

ed25519-n?kler har flere fordeler fremfor de gamle rsa-n?klene.

  • De er sikrere
  • De er mindre
  • De er raskere ? generere og ? verifisere

N?kler genereres enklest p? kommandolinja p? en macOS- eller Linux-maskin.

I denne prosessen er det verdt ? merke seg at ?passphrase? b?r settes til en passordfrase som minst like sikker som ditt passord. "-a 100" er antall runder n?kkelen krypteres, default er 16 runder. 100 runder gj?r det vanskeligere ? knekke en privat n?kkel som kommer p? avveie.

En kan ogs? velge ett annet filnavn om en f. eks. ?nsker ? ha et separat n?kkel for enkelt-maskiner eller tjenester. Om en ?nsker en n?kkel til test kan en navngi denne /home/user/.ssh/id_ed25519_test osv.

[user@host ~]$ ssh-keygen -C "Min n?kkel 2021-07-03" -a 100 -t ed25519
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/user/.ssh/id_ed25519): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/user/.ssh/id_ed25519.
Your public key has been saved in /home/user/.ssh/id_ed25519.pub.
The key fingerprint is:
SHA256:VaN5d/O1LgJYXRozuMWVNmf7GR0rNw0wHj6iqN2Snq8 Min n?kkel user 2021-07-03
The key's randomart image is:
+--[ED25519 256]--+
|          o+B+.  |
|         ..O*B.+ |
|         .Bo* =oO|
|       .o+ o + BB|
|      ..S.    o.*|
|     o o  .   ...|
|    . + .  . . . |
|     . o    . .  |
|      Eo.        |
+----[SHA256]-----+
[user@host ~]$ cd ~/.ssh 
[user@host .ssh]$ ls -al id_*
-rw-------  1  user  user  1679 jul   3  2007 id_rsa
-rw-r--r--  1  user  user   389 jul   3  2007 id_rsa.pub
-rw-------  1  user  user   444 Aug  10 13:20 id_ed25519
-rw-r--r--  1  user  user    86 Aug  10 13:20 id_ed25519.pub
[user@host .ssh]$ cat id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIH9kFmr...... Min n?kkel user 2021-08-10
[user@host .ssh]$

Det er hele linjen "ssh-ed25519 AA.... 2021-08-10" som s? skal kopieres inn inn authorized_keys og andre steder der ssh public key skal inn.

Merk: ssh-n?kler som benyttes skal alltid beskyttes med passordfrase. Unntak skal v?re risikovurdert og godkjent av IT-sikkerhet.

3. Legge begrensinger p? bruk av n?kkel

3.1 Begrense bruk til fra kun en maskin eller en ip-range

Om n?kkel fast brukes bare fra en maskin eller fra noen maskiner, kan det legges inn begrensinger i authorized_keys p? maskinen en logger inn p?. Dette reduserer risiko for misbruk om den private n?kkelen kommer p? avveie.

For eksempel – om en ?nsker at den genererte n?kkelen kun skal kunne brukes fra en host med navn arbeidsstasjon123.uio.no eller kun fra en bestemt ip-range, kan det gj?res slik i en .ssh/authorized_keys fil:

from="arbeidsstasjon123.uio.no" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI...

For ? begrense bruken kun fra en gitt ip-range kan gj?res slik:

from="192.168.0.0/24" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI...

Merk: dersom det er gitt tillatelse til at n?kkelen kan brukes uten passordfrase, for eksemlel i skript eller annen automasjon, er det et krav med slik begrensning.

3.2 Begrense bruk til ? kun kj?re én bestemt kommando

Om en ?nsker at n?kkelen kun skal kunne brukes til ? kj?re én gitt kommando kan dette begrenses slik:

command="/usr/bin/test" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI...

3.3 Flere begrensninger p? n?kkelen

En kan legge p? flere begrensninger om en ?nsker:

no-agent-forwarding,no-port-forwarding,no-X11-forwarding,no-user-rc

Dette er ikke alltid n?dvendig, men kan benyttes som ekstra sikkerhetsmekanisme om du har en n?kkel som kun skal brukes til ett bestemt form?l.

4. Kopiere n?kkel til ny maskin

Om du ?nsker ? benytte n?kkelen for ? logge inn p? en maskin s? kan du enten kopiere inn linjen med "ssh-ed25519 AA.... 2021-08-10" manuelt inn i .ssh/authorized_keys hos den brukeren og maskinen du skal logge inn p? – eller du kan benytte ssh-copy-id

[user@host ~]$ ssh-copy-id user@server

Merk: ved UiO s? skal du som hovedregel ikke bruke ssh-n?kler for ? g? fra en bruker til en annen. Dvs. du skal ikke bruke din ssh-n?kkel for ? logge rett inn som root fra din vanlige bruker. 

5. Logge p? maskin med en bestemt n?kkel

I tilfelle du har flere ssh-n?kler kan det v?re ?nskelig ? logge p? med en bestemt av dem. Hvis du f. eks. har en n?kkel som heter id_ed225519_privat og ?nsker at den skal brukes kan det gj?res slik:

[user@host ~]$ ssh -i .ssh/id_ed25519_privat user@server

Merk: Om ting ikke virker, eller oppf?rer seg annerledes enn forventet – pr?v ? legge p? en -v eller en -vv s? vil du f? debug-informasjon om hva som skjer.

Dette kan ogs? konfigureres i .ssh/config ? benytte en spesifikk n?kkel mot en eller en gruppe maskiner.

Host eksempelhost
    User dinBruker
    IdentityFile ~/.ssh/dinNokkelfil
    IdentitiesOnly yes

6. Skifte passordfrase p? n?kkel

Om du ?nsker ? skifte passordfrase p? en n?kkel s? kan det kj?res med ssh-keygen slik:

[user@host ~]$ ssh-keygen -p -f .ssh/id_ed25519

7. Opprydding av n?kler

Det kan v?re lurt ? merke seg hvilke maskiner og systemer en legger igjen public-delen av n?kkelen. Om en skulle miste privat-delen av n?kkelen, eller skifter jobb eller stilling – m? n?kler ryddes vekk.

N?kler ryddes ved ? slette linjen fra .ssh/authorized_keys

8. Tips og triks

En veldig vanlig feil ved oppsett av SSH-n?kler er at det settes feil rettigheter p? filene. 

Det finnes en del andre opsjoner en kan legge inn i authorized_keys ogs?, se bla her:

authorized_keys File Format

Det er verdt ? merke seg at normalt sett s? vil bruker ha tilgang til ? endre p? authorized_keys, s? en kan ikke bruke disse som sikkerhetsmekanisme uten videre.

S?k i veiledningene
Kontakt brukerst?tte:

Ring oss

Vi har ?pent mellom 08:30 og 17:00 p? hverdager,
og mellom 10:00 og 15:00 p? l?rdager.

Telefonnummer: 22 84 00 04

Send inn sak til oss

Du kan sende inn din foresp?rsel via e-post til: it-support@uio.no.

G? til e-post

Book et videom?te over Zoom

Er du student eller ansatt kan du avtale veiledningstime hos UiO Helpdesk over Zoom. Tilgjengelige tider er tirsdag til torsdag mellom 11:00 og 13:00.

Book et videom?te

Chat med oss

V?r chat er bemannet mellom 09:00 og 16:00 p? hverdager.

?pne chat
Publisert 27. aug. 2021 09:13 - Sist endret 4. apr. 2024 20:06