ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key
Dobimo:
2048 1d:92:43:78:2b:5d:bf:aa:69:2a:fc:93:ee:e8:09:f5 /etc/ssh/ssh_host_rsa_key.pub
Včasih se zgodi, da smo nekje, kjer potrebujemo grafični dostop do domačega računalnika, odprt pa imamo samo ssh. Drugače povedano: radi bi zagnali neko aplikcijo na oddaljenem računalniku (npr. mojserver.si), vendar v grafičnem načinu, torej tako, da bi zaslon videli na našem trenutnem zaslonu (na oddaljenem računalniku A).
REŠITEV: Če imamo neposreden ssh dostop se iz Linux računalnika iz grafične konzole povežemo z ukazom:
ssh -X uporabnik@mojserver.si
Nato v konzoli vpišemo ukaz npr. firefox ter dodamo znak &, da se program zažene v ozadju. V tem primeru se Firefox požene na oddaljenem strežniku “mojserver.si”, zaslon oz. okno od programa pa vidimo pri sebi (na lokalnem računalniku):
firefox &
Kaj pa če imamo na lokalnem računalniku nameščen samo operacijski sistem Windows? V tem primeru uporabimo Damn Small Linux, embedded version, ki v virtualnem računalniku Qemu naloži oskubljeno različico Linuxa. Od tam naprej je postopek enak.
Najprej generiramo ssh ključ (algoritem je RSA, velikost ključa 3072):
ssh-keygen -t rsa -b 3072
Za geslo (passphrase pritisnemo enter):
Generating public/private rsa key pair. Enter file in which to save the key (/home/matej/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/matej/.ssh/id_rsa. Your public key has been saved in /home/matej/.ssh/id_rsa.pub. The key fingerprint is: f5:10:ad:8f:18:4a:93:24:18:bd:9d:4e:78:42:b0:1b matej@matthai
V podimeniku .ssh dobimo dve datoteki: id_rsa in id_rsa.pub:
ls -lha .ssh/*
id_rsa je zasebni ključ in ga je treba varno hraniti. id_rsa.pub je javni ključ, ki ga prekopiramo na vse računalnike, na katere se želimo prijaviti brez gesla (s ključem).
Vsebina javnega ključa ssh_kljuc.pub je naslednja:
cat .ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAYEAy+Fiqq6vpGy2uTa6Xv4piGIdH1wLit2w7EpymIG/cP6ZzKUHGf9sdEsgEYn2ZmBUjk1TwjaDr7fRRnzzgbKxD23NM6s6AsDEJ1BFuI74qtVrh6N4chAopstIVOm7GnC5Kl/3fYrFj2NkSbNvvBAXLN3GE7c9Tfo5xQ/x/H7JJtV6IvjVqmj4uiGCaDXnJuHAtjVFc+PekAyqHTVfg/onTP3mTMzt7LNhUrVwaPgy1Q+OCu8dcfo6BGb0ZrK8KXedRjJ177CRmPJNUQ/o1cm/qkmZsaxg+OKf/WplYKj/cwv0FQXzfTkBETwcOmDB+NbuU5ThTpsc21ehGuOKVPcsdyEQ7/n610OnBIwt2ow1ewvojElaq+RwUt8pfdGQIWp56uSilb65f10lM1srDUu7HqJYY8vVnJWx6Sq5sy2iZWXF5xJwtpGUQdq42Bp2CeT8GIDN1Hat7Xa0Uy9cW1Jy0AD1Gr+oAgD0mPJ4avs+ypcelJgid0Nhl4Y6x+bqqVml matej@matthai
Vsebino te datoteke nato prekopiramo v datoteko .ssh/authorized_keys na oddaljenem strežniku na katerega se želimo povezovati brez gesla.
Sedaj se lahko brez gesla povežemo na oddaljeni strežnik:
ssh matej@remoteserver.si
Samodejni zagon programa na oddaljenem računalniku (npr. Xchat v grafičnem načinu):
ssh -X matej@193.2.85.50 /usr/bin/xchat
PROBLEM: kako se priklopiti preko ssh na računalnik v učilnici, ki je za NAT-om iz interneta?
REŠITEV: reverzni ssh preko zunanjega računalnika.
Iz učilnice se je treba povezati na zunanji računalnik (primer za uporabnika “tone” na zunanjem računalniku kovacic-m.fdv.uni-lj.si):
ssh -R 2048:localhost:22 tone@kovacic-m.fdv.uni-lj.si
nato je treba vpisat geslo uporabnika “tone”.
Na drugi strani pa se je treba priklopiti na računalnik (primer za računalnik kovacic-m.fdv.uni-lj.si, uporabnik na drugi strani tunela je “fdv”):
ssh -p 2048 fdv@localhost
in vpisati geslo od uporabnika “fdv” v učilnici.
Uporabnik iz učilnice mora ves čas trajanja povezave ostati priklopljen v konzoli na zunanjem računalniku! V nasprotnem primeru se tunel prekine.
Vir: SSH tunelling
PROBLEM: Imamo računalnik, ki je za NAT-om. Iz interneta bi radi dostopali do njega. Predpostavka: imamo dostop do NAT-a.
REŠITEV: ssh tunel: internet –> NAT (gateway) –> lokalni računalnik
Lokalni računalnik bomo imenovali lokalni_racunalnik, računalnik NAT bomo imenovali NAT_server. Uporabnika sta uporabnik_lokalni ter uporabnik_NAT.
Najprej rečemo:
ssh -l uporabnik_NAT -L 7777:lokalni_racunalnik:22 NAT_server cat -
nato pa:
ssh -p 7777 localhost -l uporabnik_lokalni
Npr. (NAT = skrbnik@natserver.org, lokalni računalnik = matej@192.168.1.2):
ssh -l skrbnik -L 7777:192.168.1.2:22 natserver.org cat - ssh -p 7777 localhost -l matej
Več informacij na |SSH tunelling ter na Slo-Tech forumu.