Uporaba ssh
Varna lupina ssh (secure shell) je orodje za dostop do oddaljenih
računalnikov. Je varno nadomestilo za telnet in ftp,
saj omogoča šifrirano komunikacijo in preverjanje identitete
uporabnika in računalnika. Izkaže se kot zelo primerno orodje za
upravljanje gruče računalnikov, npr. računalniške učilnice.
Pred varno in udobno uporabo pa zahteva nekaj priprave.
Generiranje ključa
Najprej je potrebno generirati par javni/privatni ključ uporabnika
z ukazom:
ssh-keygen -t rsa
Privatni ključ je zaščiten z daljšim geslom (passphrase), ki ga
moramo na zahtevo dvakrat vnesti. S tem geslom ob poznejši uporabi
aktiviramo zasebni ključ in tako "dokažemo" svojo identiteto,
zato ga moramo skrbno izbrati. Možna je tudi uporaba praznega gesla,
vendar ni priporočljiva.
Oba ključa se shranita v imeniku:
~/.ssh/id_rsa (privatni)
~/.ssh/id_rsa.pub (javni)
Distribucija javnega ključa
Svoj javni ključ
id_rsa.pub lahko prenesemo na vse računalnike,
do katerih želimo oddaljen dostop. Prepišemo ga v datoteko
authorized_keys in jo
zaščitimo, da je berljiva le za nas:
cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
Datoteka
authorized_keys na oddaljenem računalniku nas
avtorizira za
ssh dostop, ob predpostavki, da smo prej aktivirali svoj
privatni ključ, ki ustreza javnemu ključu v datoteki.
Aktivacija privatnega ključa
Predpostavljamo, da na računalniku, kjer imamo shranjen privatni
ključ, delamo v grafičnem (X oz. KDE, GNOME, ...) okolju.
Privatni ključ aktiviramo z ukazom:
ssh-add
svojo identiteto pa dokažemo z vnosom izbranega daljšega gesla.
Grafično okolje (natančneje, ssh-agent) si ključ zapomni in
ponovna aktivacija ni več potrebna do odjave iz lokalnega sistema.
Uporaba
Prijava na oddaljen računalnik (nadomesti telnet)
Zdaj se lahko brez dodatnega vnašanja gesel prijavimo na vsak
oddaljen računalnike, kamor smo distribuirali naš javni ključ, n.pr.:
ssh root@dhcp3.sola.si
Če smo lokalno prijavljeni kot
root in je oddaljen računalnik
na isti podmreži kot lokalni, zadošča poenostavljeno:
ssh dhcp3
Prenašanje datotek (nadomesti ftp)
Ukaz
scp lahko pod enakimi pogoji kot
ssh
uporabimo za prenos datotek.
N.pr., v datoteki
posodobi.sh imamo skripto
za posodobitev paketov, ki jo prenesemo iz lokalnega na oddaljen
računalnik:
scp posodobi.sh dhcp3:/usr/local/sbin/posodobi.sh
Izvajanje programov
Preko
ssh lahko izvršujemo ukaze in poganjamo programe na
oddaljenih računalnikih.
Na daljavo lahko n.pr. sprožimo posodobitev paketov:
ssh dhcp3 /usr/local/sbin/posodobi.sh
Upravljanje gruče računalnikov
Zdaj že postaja razvidno, kako lahko z enostavnimi
lupinskimi skriptami na daljavo upravljamo z množico računalnikov.
Sledeča skripta n.pr. poskrbi za posodobitev celotne mini učilnice:
HOSTS='dhcp1 dhcp2 dhcp3 dhcp4 dhcp5 dhcp6'
for HOST in $HOSTS
do
ssh $HOST /usr/local/sbin/posodobi.sh
done
Nadaljnje branje
Tu sem predstavil le minimalne osnove uporabe in potencial
ssh.
Za bolj podroben, vendar še vedno poljuden opis poglejte v knjigo
Linux z namizjem KDE.
Za natančne tehnične podrobnosti pa nameščena navodila
man ssh, scp,
ssh-keygen, ssh-add, sshd, ssh_config.
Igor Mozetič