SSH

Izpis digitalnega prstnega odtisa ssh ključa lastnega računalnika

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

Grafični dostop do aplikacij preko SSH tunela

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.

Prijava na ssh s ključem (brez gesla)

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/*
  1. rw——- 1 matej matej 2,4K 2007-12-28 12:23 .ssh/id_rsa
  2. rw-r–r– 1 matej matej 563 2007-12-28 12:23 .ssh/id_rsa.pub
  3. rw-r–r– 1 matej matej 4,2K 2007-12-27 17:41 .ssh/known_hosts

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

Reverzni SSH tunel

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

SSH tunel skozi NAT

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.

SSH Port Forwarding

Using Rsync and SSH - Keys, Validating, and Automation

Poor man's VPN with SSH

 
ssh.txt · Zadnjič spremenil/a: 2007/12/28 16:23 matthai
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki