Kauglogimine ja SSH
Selles peatükis käsitleme ssh, võtmeid, agenti ja turvalisi ühendusi teistesse masinatesse.
Loogika
SSH lahendab kolm väga sagedast probleemi:
- logi turvaliselt teise masinasse sisse
- käivita seal käske
- liiguta faile sama turvalise kanali kaudu
Sellepärast on SSH seotud ka käskudega scp, rsync ja Git.
Kiirspikker
ssh kasutaja@hostlogib kaugmasinassessh -p 2222 kasutaja@hostkasutab teist portissh-keygenloob võtmedssh-copy-id kasutaja@hostkopeerib avaliku võtme serverissescpjarsynckasutavad sageli sama SSH-kanalit
Kõige tavalisemad lipud, mida tasub päriselt meeles pidada:
-pport-ikonkreetne võti-vveaotsingu jaoks jutukam väljund
Käivita need käsud
ssh kasutaja@server.example.org
ssh -p 2222 kasutaja@server.example.org
ssh -i ~/.ssh/id_ed25519 kasutaja@server.example.org
ssh kasutaja@server.example.org 'hostname && uptime'
Võtmete põhimõte
- privaatvõti jääb sinu arvutisse
- avalik võti kopeeritakse serverisse
- server lubab sisse, kui võtmepaar sobib
See on põhjus, miks võtmetega autentimine on nii tavaline:
- mugavam kui iga kord parooli sisestada
- tavaliselt turvalisem
- vajalik paljudes automaatsetes töövoogudes
~/.ssh/config
Kui ühendud tihti samade masinatega, tasub kasutada config-faili.
Siin tähendab ~ sinu kodukataloogi lühikuju.
Näide:
Host opik-server
HostName server.example.org
User vilo
Port 2222
IdentityFile ~/.ssh/id_ed25519
Pärast seda saab ühendada lihtsalt nii:
ssh opik-server
scp fail.txt opik-server:/tmp/
rsync -av kaust/ opik-server:/tmp/kaust/
See on hea näide sellest, kuidas SSH seob omavahel sisselogimise ja failide kopeerimise.
Kõige tavalisem töövoog
- loo võtmepaar
ssh-keygen - kopeeri avalik võti serverisse
- testi sisselogimist
- lisa vajadusel
~/.ssh/config
Võtmete loomine samm-sammult
See osa ei ole enam lihtsalt kiirspikker, vaid väike eraldi töövoog.
Kõige tavalisem turvaline algus on:
ssh-keygen -t ed25519 -C 'minu-voti-kommentaar'
ssh-add ~/.ssh/id_ed25519
Selle taga on järgmine loogika:
ssh-keygenloob võtmepaari- privaatvõti jääb sinu arvutisse
- avalik võti viiakse serverisse
ssh-addlisab võtme agendile, et peaksid harvemini parooli või paroolifraasi sisestama
Avalikku ja privaatset võtit ei tohi segi ajada:
- privaatvõtit ei saadeta teistele
- avaliku võtme võib kopeerida serverisse
Kui sinu süsteemis on olemas ssh-copy-id, siis on avaliku võtme serverisse lisamine sageli kõige lihtsam:
ssh-copy-id kasutaja@server.example.org
Kui seda käsku ei ole, siis tuleb avalik võti lisada serveri faili ~/.ssh/authorized_keys mõnel muul viisil.
Mis jääb hilisemaks
SSH-l on ka keerukamaid võimalusi, näiteks port forwarding ja agent forwarding. Need on kasulikud, aga alguses ei ole nad “esimesed lipud, mis tuleb pähe õppida”.
Veaotsing
Kui ühendus ei tööta, siis kõige kasulikum esimene käsk on sageli:
ssh -v kasutaja@server.example.org
See aitab näha:
- millist võtit prooviti
- kas port on õige
- kas autentimine kukkus läbi või ühendust ei saadud üldse
Minitest
- Vaata, kas sul on kaust
~/.ssh. - Uuri, millised võtmed sul seal juba olemas on.
- Pane kirja, mis vahe on avalikul ja privaatsel võtmel.
- Kirjuta näidis
~/.ssh/configühe kujuteldava serveri jaoks.