Mustand: sisu ei ole veel tehniliselt ega keeleliselt täielikult kontrollitud ega toimetatud.

Peatüki vaade

Linux/Unix/macOS käsurea kiirõpik

Praegu loed peatükki Kauglogimine ja SSH, mis kuulub osasse Osa III: Failid, võrk ja süsteemitöö.

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:

  1. logi turvaliselt teise masinasse sisse
  2. käivita seal käske
  3. liiguta faile sama turvalise kanali kaudu

Sellepärast on SSH seotud ka käskudega scp, rsync ja Git.

Kiirspikker

  • ssh kasutaja@host logib kaugmasinasse
  • ssh -p 2222 kasutaja@host kasutab teist porti
  • ssh-keygen loob võtmed
  • ssh-copy-id kasutaja@host kopeerib avaliku võtme serverisse
  • scp ja rsync kasutavad sageli sama SSH-kanalit

Kõige tavalisemad lipud, mida tasub päriselt meeles pidada:

  • -p port
  • -i konkreetne võti
  • -v veaotsingu 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

  1. loo võtmepaar ssh-keygen
  2. kopeeri avalik võti serverisse
  3. testi sisselogimist
  4. 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:

  1. ssh-keygen loob võtmepaari
  2. privaatvõti jääb sinu arvutisse
  3. avalik võti viiakse serverisse
  4. ssh-add lisab 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

  1. Vaata, kas sul on kaust ~/.ssh.
  2. Uuri, millised võtmed sul seal juba olemas on.
  3. Pane kirja, mis vahe on avalikul ja privaatsel võtmel.
  4. Kirjuta näidis ~/.ssh/config ühe kujuteldava serveri jaoks.