Pähkinänkuoressa vielä koko homma:
Tarkoituksena oli luoda windows koneeseen scripti, jolla voi esim ajastettuna varmuukopioida rsynciä käyttäen tiedostoja automaattisesti Linux palvelimelle (joko koti- tai ISP:n koneelle).
Tämä vaatii sen että scripti ei pysähdy salasanan kyselyyn vaan tunnistautuminen voidaan hoitaa automaattisesti.
Speksit homman hoitamiseksi alla:
VISTA = clienttikone, vistauser käyttäjä siellä.
SERVER=palvelinkone ja serveruser käyttäjä palvelimella
Vistassa on cygwin ssh:lla asennettuna ja serverillä myös ssh.Samoin rsync on clienttinä vistassa ja serverillä myös daemonina.
Avataaan Vistassa cygwin komentorivi ja aletaan "komennuttaminen"
$ cd c:\cygwin
$ ssh-keygen -f identi_rsa -t rsa
Nyt tulee kyselyä salasanoista, painetaan enteriä tyhjän salasanan merkiksi.
Eli luodaan ssh-keygenillä identi_rsa niminen filu jossa avain on (tyypiksi määrättiin rsa).
Ssh tekee automaattisesti kaksi filua:
$ ls
identi_rsa identi_rsa.pub (+ jne. kamaa mitä on c:\cygwin\ juuressa)
Tässä tuo identi_rsa .pub:n sisältö pitää saada serverin puolelle .ssh kansioon authorized_keys2 filuun.
Ainakin omalla palvelimellani tuo kansio /home/serveruser/.ssh/authorized_keys2 oli, mutta sen voi sinne luoda jos ei ole.
Hieman epäortodoksisesti avasin authorized_keys2 filun winscp:llä sciteen kun se sattui olemaan auki ja copypastain identi_rsa.pub:n sisällön filun viimeiseksi rivin perään.
Pastasin vikaksi riviksi välittämättä mitä muuta kamaa siinä oli.
Tässä vaiheessa Puttyllä serveruserina servulle ja hieman oikeuksien muokkausta jotta ssh-daemon saadaan tyytyväiseksi.
serveruser@server:~$ chmod go-w .
serveruser@server:~$ cd .ssh/
serveruser@serve:r~/.ssh$ chmod 700 .
serveruser@server:~/.ssh$ chmod 600 *
Huomatkaa pisteet ja tähdet tarkkaan.
Tässä vaiheessa exittiä servulta ja takaisin vistan cygwin komentoriville:
$ cd c:\cygwin
Tässä cygwin on asennettu tähän hakemistoon ja toimii siis "/" hakemistona
Nyt sitten kokeillaan:
$ssh serveruser@server -i identi_rsa
Osavoitto :
serveruser@server:~$ hostname
server
Seuraavaksi pitäisi saada vielä tuo rsync ujuttamaan tuo identi_rsa kun kirjaudutaan:
Tehdään scriptitiedosto Vista koneeseen: backup.cmd (esim.)
Koodia:
cd c:\cygwin\
rsync -rtv -e 'ssh -i identi_rsa' --delete /cygdrive/c/docs/important serveruser@server:/home/serveruser/backups/
Tuota muokkaamalla voi eri kansioita kopsata rsyncillä palvelimelle.
Ihan sama onko kotipalvelin vai ISP:n, kunhan olet tehnyt kotikansioon sen .ssh kansion, muokannut oikeudet ja liittänyt
identi_rsa .pub tiedoston sisällön .ssh kansioon authorized_keys2 filuun.
Tuohon authorized_keys2 filuun voi vielä laitella turvaoptioita (esim. vain rsync komento on sallittu).
Niistä lisää tuossa mainitussa ohjessa:
http://www.hackinglinuxexposed.com/articles/20021211.html (kiitos Taleman).
T.
Tunkkaamo