[ Jbyn4e @ 01.04.2009. 12:54 ] @
Scenario - potrebno je shell script-om prebaciti fajlove na server. Potrebno je obezbediti da se mozemo logovati na udaljenu masinu bez lozinke. Zbog toga moramo napraviti svoj tajni i javni kljuc za povezivanje ssh protokolom (koga koriste scp/sftp klijenti). To cemo uraditi komandom ssh-keygen koja dolazi uz openssh paket mnogih linux distribucija (ako ne i svih): # ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/sf/.ssh/id_rsa): Created directory '/home/sf/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/sf/.ssh/id_rsa. Your public key has been saved in /home/sf/.ssh/id_rsa.pub. The key fingerprint is: ... Ovim smo napravili tajni (id_rsa) i javni (id_rsa.pub) kljuc. Taj javni kljuc potrebno je uneti u .ssh direktorijum (ne zaboraviti tacku na pocetku), u fajl authorized_keys (ako ne postoji, napraviti ga). Javni kljuc mozete prekopirati sa jedne na drugu masinu na nacin koji vam je najlaksi, ja obicno posaljem scp-om fajl: # scp .ssh/id_rsa.pub user@server: Ne zaboravite da treba da stoji dvotocka iza imena servera, pa putanja koju zelite. i nakon toga otici na server i kopirati sadrzaj tog fajla u authorized_keys: # ssh user@server Password: ***** # cat id_rsa.pub>>.ssh/authorized_keys Postupak za ssh kljuc sa dsa enkripciju je identican, sa malom razlikom sto se umesto rsa koristi dsa (ssh-keygen -t dsa). Ovo sve vazi za ssh protokol verzije 2. Ovim smo omogucili da uradimo scp ili sftp sa date masine na server. Upotreba: scp fajl user@server:/apsolutna/putanja/naziv_fajla sftp user@server:/direktorijum pwd put *.* quit Ukoliko server nema scp mogucnosti (primer: windows freesshd), ovo vam moze posluziti za secure prenos fajlova na server, kome ste pre toga dostavili svoj kljuc... u ovom primeru cete u skriptama koristiti sftp za povezivanje sa windows serverom. U slucaju da morate da koristite sftp, koristicete ovako nesto u skriptama: sftp user@server:/nula <<EOF cd 1 rm *.* cd .. cd 2 rm *.* put *.jpg quit EOF Ovim cete na serveru u direktorijumu /nula/1 i /nula/2 obrisati sve, a potom iz tekuceg direktorijuma prebaciti sve jpeg-ove u /nula/2 Ukoliko nesto nisam ispustio, ovo bi trebalo da je sve. |