Üdv!
A helyzet a következő: Van két irodai szerver (ubuntu 9.10, mindkettőn ugyanaz a user neve), az egyik sambázik, a másik meg devként ketyeg, de szeretném tükrözni rá a sambás gép pár könyvtárát automatikusan.
Ez alapján: http://sial.org/howto/rsync/ (Backups with rsync and SSH bekezdés) létrehoztam az ssh kulcsokat. Ez szerintem működik, mivel az rsync-es scriptemet a dev szerverről terminálban indítva jelszó kérés nélkül működik hibátlanul.
Itt az rsync script:
#/bin/sh
/usr/bin/rsync -avz --log-file=/home/xxx/mirror-office/sync.log xxx@192.168.0.200:/home/xxx/Dokumentumok /home/xxx/mirror-office
Szóval ez terminálban indítva működik, nem kér jelszót se. Gondoltam berakom cron-ba crontab -e-vel:
*/20 * * * * /home/xxx/mirror-office/sync
Ez le is fut, a sync.log-ban viszont a következő található:
2010/01/19 11:10:02 [6403] rsync: connection unexpectedly closed (0 bytes received so far) [receiver]
2010/01/19 11:10:02 [6403] rsync error: unexplained error (code 255) at io.c(600) [receiver=3.0.6]
Nem értem mi a baja, segítsetek léci...
EDIT: A megoldás lejjebb!!!
- 1708 megtekintés
Hozzászólások
Szia!
-a megfelelő userként fut -e?
-PATH változó rendben van? Érdemes a scripted elejére export PATH=/bin:/sbin:/usr/bin:/usr/sbin stb... régi Debiannál voltak ilyen gondok
-Ha kulccsal loginoltatod az ssh-t, akkor ugy tudom ezt az rsync igy szereti: rsync -e "ssh -i ssh.key" -avz stb...
-crontabba hivd meg igy a scripted, hátha csak lemaradsz valami hasznos üzenetrol: */20 * * * * /home/xxx/mirror-office/sync >/home/xxx/mirror-office/sync.crondebug 2>&1
Hirtelen ezek jutottak eszembe.
Tipp: LAN-on lehet, hogy nem célszerű a -z kapcsoló. A procinak nagyobb falat betömöríteni, mint a hálókártyának tömörítetlenül átküldeni 100 megán:) Ha neten keresztül tolod, akkor nem szóltam.
JSI
- A hozzászóláshoz be kell jelentkezni
Próbálkozok ezek alapján, szólok, ha van eredmény
- A hozzászóláshoz be kell jelentkezni
"...Ha kulccsal loginoltatod az ssh-t, akkor ugy tudom ezt az rsync igy szereti: rsync -e "ssh -i ssh.key" -avz stb..."
szerintem felesleges, én csak publikus kulccsal rsync-elek, de még soha nem használtam így.
szerk.: bocs, közben leesett hogy nem alapértelmezett nevű a kulcs, ezért kell
- A hozzászóláshoz be kell jelentkezni
Szia!
Szerintem valami jogosultsag problemad van. Pl. a cron -t futtato user nem fer hozza az ssh kulcshoz.
- A hozzászóláshoz be kell jelentkezni
lehet, hogy a cron bin-ként fut és nem rootként/mezei userként.
> Sol omnibus lucet.
- A hozzászóláshoz be kell jelentkezni
No, az itt leirtaknak megfelelően változtattam pár dolgot:
A sync script:
#/bin/sh
/usr/bin/rsync -e "ssh -l xxx -i /home/xxx/mirror-office/passwd" -avz --log-file=/home/xxx/mirror-office/sync.log xxx@192.168.0.200:/home/xxx/Dokumentumok /home/xxx/mirror-office
Létrehoztam a passwd fájlt, benne van a jelszó. owner: xxx group: xxx jogok: 600
Más jogokkal a sync.crondebug arra panaszkodik, hogy túl nyiltak a jogosultságok rajta...
Terminálból indítva továbbra is tökéletesen működik, cronbol viszont:
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).
rsync: connection unexpectedly closed (0 bytes received so far) [receiver]
rsync error: unexplained error (code 255) at io.c(600) [receiver=3.0.6]
Kikommenteztem crontab -e -ben a dolgot és beletettem ugyanazt a /etc/crontabba odaírva, hogy xxx user... hátha az a baja, de ugyanez az error van így is?
Tippek?
- A hozzászóláshoz be kell jelentkezni
a script az user crontab-jaban van vagy a root crontab-jaban?
az ssh kulcsot ugyanazzal a user-rel generaltad?
a cron logja /var/log/cron mit ir?
- A hozzászóláshoz be kell jelentkezni
A script a user crontabjaban es a root crontabjaban (a userrel futtatva) is ugyanazt a hibauzenetet adja.
Az ssh-keygen az adott userkent futott, terminálban indítva működik is...
Nincs /var/log/cron... (Ubuntu 9.10)
- A hozzászóláshoz be kell jelentkezni
pardon, akkor grep CRON /var/log/syslog
valami path vagy jogosultsag baja lehet
- A hozzászóláshoz be kell jelentkezni
Jan 19 14:18:01 xxx-dev CRON[7918]: (xxx) CMD (/home/xxx/mirror-office/sync > /home/xxx/mirror-office/sync.crondebug 2>&1)
Ilyeneket ír ki, error nincs...
- A hozzászóláshoz be kell jelentkezni
egyik gepen sincs a /var/log/auth.log -ban semmi relevans?
illetve /home/xxx/mirror-office/sync.crondebug -ban valami hasznos?
- A hozzászóláshoz be kell jelentkezni
/var/log/auth.log
Jan 19 14:51:01 xxx-dev CRON[8008]: pam_unix(cron:session): session opened for user xxx by (uid=0)
Jan 19 14:51:01 xxx-dev CRON[8008]: pam_unix(cron:session): session closed for user xxx
Jan 19 14:54:01 xxx-dev CRON[8015]: pam_unix(cron:session): session opened for user xxx by (uid=0)
Jan 19 14:54:01 xxx-dev CRON[8015]: pam_unix(cron:session): session closed for user xxx
Jan 19 14:57:01 xxx-dev CRON[8022]: pam_unix(cron:session): session opened for user xxx by (uid=0)
Jan 19 14:57:01 xxx-dev CRON[8022]: pam_unix(cron:session): session closed for user xxx
sync.crondebug
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).
rsync: connection unexpectedly closed (0 bytes received so far) [receiver]
rsync error: unexplained error (code 255) at io.c(600) [receiver=3.0.6]
Ezek vannak csak :-(
- A hozzászóláshoz be kell jelentkezni
a scriptben probald meg
/usr/bin/rsync -e "/usr/bin/ssh -l xxx -i /home/xxx/mirror-office/passwd"
- A hozzászóláshoz be kell jelentkezni
Kipróbáltam, nincs semmi változás
- A hozzászóláshoz be kell jelentkezni
esetleg ssh verbose mod utan /home/xxx/mirror-office/sync.crondebug -ban valami tampont?
/usr/bin/rsync -e "/usr/bin/ssh -v -l xxx -i /home/xxx/mirror-office/passwd" -avvvz
- A hozzászóláshoz be kell jelentkezni
Ezúttal is nagyon köszönöm a tippet, ezt kaptam:
(Még nem sikerült értelmezni mi a hiba, segíts léci)
opening connection using: /usr/bin/ssh -v -l xxx -i /home/xxx/mirror-office/passwd -l xxx 192.168.0.200 rsync --server --sender -vvvlogDtprze.iLs . /home/xxx/Dokumentumok
OpenSSH_5.1p1 Debian-6ubuntu2, OpenSSL 0.9.8g 19 Oct 2007
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to 192.168.0.200 [192.168.0.200] port 22.
debug1: Connection established.
debug1: identity file /home/xxx/mirror-office/passwd type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.1p1 Debian-6ubuntu2
debug1: match: OpenSSH_5.1p1 Debian-6ubuntu2 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.1p1 Debian-6ubuntu2
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-cbc hmac-md5 none
debug1: kex: client->server aes128-cbc hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host '192.168.0.200' is known and matches the RSA host key.
debug1: Found key in /home/xxx/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /home/xxx/mirror-office/passwd
debug1: PEM_read_PrivateKey failed
debug1: read PEM private key done: type
debug1: read_passphrase: can't open /dev/tty: No such device or address
debug1: Next authentication method: password
debug1: read_passphrase: can't open /dev/tty: No such device or address
debug1: Authentications that can continue: publickey,password
Permission denied, please try again.
debug1: read_passphrase: can't open /dev/tty: No such device or address
debug1: Authentications that can continue: publickey,password
Permission denied, please try again.
debug1: read_passphrase: can't open /dev/tty: No such device or address
debug1: Authentications that can continue: publickey,password
debug1: No more authentication methods to try.
Permission denied (publickey,password).
rsync: connection unexpectedly closed (0 bytes received so far) [receiver]
rsync error: unexplained error (code 255) at io.c(600) [receiver=3.0.6]
_exit_cleanup(code=12, file=io.c, line=600): about to call exit(255)
- A hozzászóláshoz be kell jelentkezni
Ha jol ertem nem tudja kiolvasni a passwd file-t. Ezt már eddig is tudtuk.
A passwd file tulaja az xxx (a csoportja is) es csak az xxx-nek van ra olvasasi es irasi joga.
Elvileg igy kene mennie, nem?
- A hozzászóláshoz be kell jelentkezni
tulajdonkeppen jo
700 ./ssh
600 id_dsa
644 id_dsa.pub
amikor a kulcsokat generaltad ugye a passphrase-t uresen hagytad?
- A hozzászóláshoz be kell jelentkezni
Vakon másoltam a leírásból...
ssh-keygen -N '' -C backup1 -t rsa -f ~/.ssh/backup
De gondolom ha elcsesztem volna, kézi indiítással sem menne, nem?
- A hozzászóláshoz be kell jelentkezni
ha /home/xxx/mirror-office/passwd a /home/xxx/.ssh/backup lett akkot ok, bar ha a key nem ok akkor nem menne parancssorbol sem password nelkul, bar amikor eloszor irtad, hogy megy akkor meg nem volt ssh auth benne. De ha mondjuk az scp megy jelszo nelkul akkor biztos jo pl. scp xxx@192.168.0.200://home/xxx/Dokumentumok/valami /home/xxx/.
- A hozzászóláshoz be kell jelentkezni
debug1: PEM_read_PrivateKey failed
- A hozzászóláshoz be kell jelentkezni
debug1: read_passphrase: can't open /dev/tty: No such device or address
Ez ugy nez ki, mintha a passphrase beolvasasa miatt akadna el. Ezt normalis esetben az ssh-agent elvegzi. Probald meg, hogy ures passphrase-el gyartasz egy kulcsot. Azzal menni kene.
- A hozzászóláshoz be kell jelentkezni
elvileg azzal csinalta: ssh-keygen -N ''
edit: azert probalj meg ujat generalni
ssh-keygen -C backup2 -t rsa -f ~/.ssh/backup2
ekkor keri a passphrase-t, ott uss entert 2x, uj .pub a szerverre, stb
- A hozzászóláshoz be kell jelentkezni
Meg fogom csinalni, de:
terminalbol inditva siman mukodik es nem ker password-ot a script. ez nem azt jelenti, hogy elvileg jo?
- A hozzászóláshoz be kell jelentkezni
Nem, mert a shell-ben az ssh-agent tarolja a memoriaban a passphrase-t.
- A hozzászóláshoz be kell jelentkezni
Köszönöm mindenkinek aki segített, végre megoldódott a dolog...
- A hozzászóláshoz be kell jelentkezni
Leirnad a megoldast? Szeretunk tanulni :)
- A hozzászóláshoz be kell jelentkezni
Persze, osszeiras alatt van...
- A hozzászóláshoz be kell jelentkezni
Ne haragudj, nincs időm végigolvasni pontosan a problémát, lehet, hogy nem ide vág, vagy volt már, de egyszer ezért volt bajom a cronnal: a cron nem szereti a .-ot file nevekben.
- A hozzászóláshoz be kell jelentkezni
Kipróbáltam ezt is, kiszedtem a cron-bol es a sync-bol is a pontokat de igy is ugyanaz a hibauzenet...
- A hozzászóláshoz be kell jelentkezni
Lényegében ott csesztem el, hogy nem a ~/.ssh/backup nevű fájlt adtam meg key-nek (máshol valahol az kellett).
Az office szerveren ugyanezt megcsináltam, itt a működő sorrend:
"A" szerver <- amit tükrözni akarunk
"B" szerver <- ahova áttöltjük az adatokat
Megjegyzés1: Nálam mindkét gépen ugyanaz a usernév, a script átírásakor figyelembe kell venni!
Megjegyzés2: A sok próbálgatás miatt felesleges loggolás meg pár egyéb dolog biztos van benne
1) openssh-server telepítése az "A" gépen
2) private/public key generálás a "B" gépen
$ ssh-keygen -C backup -t rsa -f ~/.ssh/backup
3) a ~/.ssh/backup.pub fájlt a "B" gépről átmásoljuk az "A" gépre az ottani ~/.ssh könyvtárba
4) Az "A" gépen hozzáadjuk a ~/.ssh/authorized_keys -hez a "B" gép publikus kulcsát
$ cat ~/.ssh/backup.pub ~/.ssh/authorized_keys
5) A "B" gépen létrehozzuk a célkönyvtárat, pl ~/mirror-a
6) A ~/mirror-a könyvtárban létrehozzuk a sync scriptet és futtathatóvá tesszük. A script tartalma:
#/bin/sh
rm /home/userneve/mirror-a/synclog
/usr/bin/rsync -e "/usr/bin/ssh -v -l userneve -i /home/userneve/.ssh/backup" -avz --delete --log-file=/home/userneve/mirror-a/synclog userneve@azAgepIPcime:/home/userneve/tukrozniKivantKonyvtar /home/userneve/mirror-a
7) A "B" gépen berakjuk a scriptet a /etc/crontab -ba (Én sudo mc-vel szeretem csinálni az ilyesmit)
*/30 * * * * userneve /home/userneve/mirror-a/sync > /home/userneve/mirror-a/synccrondebug 2>&1
Ennyi, nálam müxik, szivesen beszélek még róla ;-)
Tenchi
- A hozzászóláshoz be kell jelentkezni
Csak egy kerdes: adtal passphrase-t az ssh-keygen futasa kozben? (vagy csak enter enter?)
- A hozzászóláshoz be kell jelentkezni
enter enter
- A hozzászóláshoz be kell jelentkezni