Der kan være forskellige årsager til at man ønsker mulighed for at ssh til en server vha. en nøgle frem for adgangskode. Det er især praktisk ved automatisering af opgaver såsom backup, synkronisering af filer og eksekvering af kommandoer på andre maskiner.
I eksemplet her beskrives det hvordan brugeren teknik100 på serverA (10.0.0.221) får mulighed for at logge ind som teknik200 på serverB (10.0.0.222) uden adgangskode vha. en nøglefil:
Først logges ind på server A med brugeren teknik100. Herfra udføres samtlige af nedenstående kommandoer:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/jde/.ssh/id_rsa): #tryk enter her Enter passphrase (empty for no passphrase): #tryk enter her Enter same passphrase again: #tryk enter her Your identification has been saved in /home/jde/.ssh/id_rsa. Your public key has been saved in /home/jde/.ssh/id_rsa.pub. The key fingerprint is: SHA256:nuX0BcHUS52Ldm0vDHe9PIQ/CPAcTrhiiaF0quipJEM jde@localhost.localdomain The key's randomart image is: +---[RSA 2048]----+ | .oo. ..| | . o o o..o..| | . + o . C o.o.+| | o . + . =.=o+=| | .E. . S o o+Boo| | o. . = . oo*.| | +.. o o . .o| | o+ | | o | +----[SHA256]-----+ |
I een arbejdsgang, logges nu på server B med brugeren teknik200 og mappen .ssh oprettes:
1 2 |
$ ssh teknik200@10.0.0.222 mkdir -p .ssh teknik200@10.0.0.222's password: #Skriv adgangskode her |
Stadig fra server A placerer vi nu teknik100‘s nøgle hos brugeren teknik200 på server B
1 2 |
$ cat .ssh/id_rsa.pub | ssh teknik200@10.0.0.222 'cat >> .ssh/authorized_keys' teknik200@10.0.0.222's password: #Skriv adgangskode her |
… og på samme måde sætter vi de korrekte tilladelser på filen:
1 2 |
ssh teknik200@10.0.0.222 "chmod 700 .ssh; chmod 640 .ssh/authorized_keys" teknik200@10.0.0.222's password: #Skriv adgangskode her |
Nu kan man fra server A logge ind på server B som bruger teknik200 uden adgangskode:
1 |
ssh teknik200@10.0.0.222 |