Razlika između inačica stranice SSH

Izvor: HrOpenWiki
Skoči na: orijentacija, traži
m (Automatska prijava SSH-om na računalo bez traženja zaporke)
m
Redak 16: Redak 16:
 
To je to.
 
To je to.
 
*([http://linuxproblem.org/art_9.html izvor])
 
*([http://linuxproblem.org/art_9.html izvor])
 +
 +
===Automatska prijava SSH-om koji zahtijeva Kerberos ticket===
 +
 +
Potrebno je prvo generirati ''keytab'' za Kerberos:
 +
$ ktutil
 +
ktutil: add_entry -password -p username@EXAMPLE.COM -k 1 -e aes256-cts-hmac-sha1-96
 +
ktutil: write_kt /home/user/.keytab
 +
 +
Zatim dodati sljedeću ssh konfiguraciju:
 +
 +
$ cat ~/.ssh/config
 +
Host mysshserver
 +
  HostName hostname.example.com
 +
  GSSAPIAuthentication yes
 +
  GSSAPIDelegateCredentials yes
 +
  user username
 +
  ProxyCommand /home/user/.ssh_custom.sh %h %p
 +
  ServerAliveInterval 60
 +
 +
I napisati skriptu koja će pozvati kinit prije spajanja:
 +
 +
$ cat ~/.ssh_custom.sh
 +
#!/bin/bash
 +
 +
# get keberos ticket without password
 +
kinit -k -t ~/.keytab username@EXAMPLE.COM
 +
krenew -K 5 -b
 +
/usr/bin/nc "$1" "$2"
 +
 +
Reference: [http://unix.stackexchange.com/questions/44307/can-ssh-configs-proxycommand-run-a-local-command-before-connecting-to-a-remote], [http://uz.sns.it/~enrico/wordpress/2014/03/password-less-ssh-login-with-kerberos/], [http://bastion.desy.de/e101746/e101750/index_eng.html]
  
 
===Montiranje udaljenih datotečnih sustava lokalno preko SSH-a===
 
===Montiranje udaljenih datotečnih sustava lokalno preko SSH-a===

Inačica od 14:04, 7. ožujka 2015.

Trikovi

Automatska prijava SSH-om na računalo bez traženja zaporke

Ideja: s korisnikom a na računalu A želimo se prijaviti na računalo B kao korisnik b bez zaporke.

1. Generirati privatni i javni RSA ključ na računalu A s korisnikom a:
ssh-keygen -t rsa
2. kreirati direktorij .ssh na računalu B kod korisnika b
ssh b@B mkdir -p .ssh

(dobro bi bilo staviti i chmod 700 na taj direktorij)

3. kopirati novokreirani javni ključ s računala A i korisnika a na računalo B kod korisnika b u datoteku .ssh/authorized_keys:
ssh-copy-id -i ~/.ssh/id_rsa.pub b@B

To je to.

Automatska prijava SSH-om koji zahtijeva Kerberos ticket

Potrebno je prvo generirati keytab za Kerberos:

$ ktutil
ktutil: add_entry -password -p username@EXAMPLE.COM -k 1 -e aes256-cts-hmac-sha1-96
ktutil: write_kt /home/user/.keytab

Zatim dodati sljedeću ssh konfiguraciju:

$ cat ~/.ssh/config 
Host mysshserver
  HostName hostname.example.com
  GSSAPIAuthentication yes
  GSSAPIDelegateCredentials yes
  user username
  ProxyCommand /home/user/.ssh_custom.sh %h %p
  ServerAliveInterval 60

I napisati skriptu koja će pozvati kinit prije spajanja:

$ cat ~/.ssh_custom.sh 
#!/bin/bash
# get keberos ticket without password
kinit -k -t ~/.keytab username@EXAMPLE.COM
krenew -K 5 -b
/usr/bin/nc "$1" "$2"

Reference: [1], [2], [3]

Montiranje udaljenih datotečnih sustava lokalno preko SSH-a

To je moguće uz pomoć programa sshfs.

Tuneliranje prometa kroz ssh vezu

Moguće situacije:

  • Računalo nema direktnu vezu na internet, ali se može sshom spojiti na drugo računalo u mreži koje ima pristup internetu.
  • Laptop je spojen na javnu bežićnu mrežu i time omogućuje uljezima presretanje prometa, krađu zaporki koje se šalju preko mreže i sl.
  • Neke su web stranice blokirane u zemlji u kojoj se nalazimo (npr. Kini ili Hrvatskoj), dok su iz drugih zemalja dostupne.

U svakom od ovih slučaja dobro je tunelirati promet kroz ssh vezu koja je sigurna sama po sebi. Jedini je zahtjev ovdje da imamo vanjsko računalo na koje se možemo spojiti sshom.

Primjer kako to napraviti s Firefoxom:

  • postavi se tuneliranje ssh na portu 8080 kroz računalo free.proxy (postavlja se adresa vanjskog računala na koje se spajamo sshom):
ssh -D 8080 -Nf free.proxy
-D je ovdje ključna opcija (-N služi za onemogućavanje izvršavanja naredbi na udaljenom računalu, -f stavljanje ssh-a u pozadinski način rada)
  • u Firefoxu je potrebno podesiti sljedeće:
u about:config (za tuneliranje i DNS upita):
network.proxy.socks_remote_dns = true
u postavkama Proxyja: SOCKS host: 127.0.0.1, Port: 8080, SOCKS v5 i ukloniti 127.0.0.1 iz no proxy.

Tuneliranje određenog porta s udaljenog računala na lokalno

Port 80 na udaljenom računalu je "preslikan" na port 8080 na lokalnom računalu, odnosno, ono što bi inače dobili ukucavanjem adrese mojadomena.hr u preglednik, dobivamo ukucavanjem localhost:8080:

ssh -C -L 8080:localhost:80 korisnik@mojadomena.hr

gdje mojadomena.hr može biti i IP adresa, naravno, a korisnik se ne treba navoditi ako je isti na oba računala.

Tuneliranje X-a kroz ssh

Ukoliko su računala međusobno povezana relativno brzom vezom (preferirano WLAN, LAN, ispod 5Mbit je vrlo sporo iscrtavanje prozora), moguće je slati X (GUI) aplikacije kroz ssh vezu.

Postupak je sljedeći - kod klasičnog spajanja dodaje se još opcija -X, tako da cijela naredba izgleda:

ssh -X korisnik@racunalo

Nakon upisivanja zaporke i prijavljivanja na udaljeno računalo dovoljno je upisati ime aplikacije koja se želi pokrenuti, npr. firefox.

Održavanje konekcije i nakon prekida veze - autossh

Vidi autossh.