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:
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.
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-postBook 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