sziasztok!
adva van egy köynvtárstruktúra, ami 2-3, nem egymásban levő mappáját kéne távoli gépre syncronizálni scriptből. a script megvalósításában van egy kérdés, amire elegáns és valamennyire biztonságos megoldást szeretnék, de kényelmes megoldással nem tudtam. kiindulva abból, hogy a triviális megoldás néha nem jut az ember eszébe, ezért kérdezek itt, hátha.
a sync eszköz rsync lenne (alternatív megoldás is jöhet, funkciójában legyen egyenértékű persze).
- több mappa és file szinkronizálása nem egy targetbe ömlesztve (/a és /b mappa a célhelyen legyen pl. /sync/a és /sync/b mappában).
- nem tárolt azonosítással (tehát bekért azonosítóval/jelszóval), de csak 1x a futtatás elején
a gond az, hogyha két rsync van a scriptben, akkor azonos host esetén is 2x kell gépelni (ez a kisebb baj, bár kényelmetlen), ráadásul mivel nem háttérben futtatott, cron/stb megoldásról van szó, ezért ismeretlen idő telik el a következő input-ig. van erre a problémára valami értelmes megoldás, ami nem plain text, eltárolt jelszót feltételez? tehát nem akarok a scriptbe jelszót írni, csak max felhasználónevet. valamiért azt gondolom, hogy a readline szerű megoldás nem annyira nyerő, de javítsatok ki, ha tévednék, persze indoklással :)
a script elvi formája tehát valami efféle
valami
valami
valami
rsync valamit user@host:/a
valami
valami
rsync valamit user@host:/b
akármi
valami
stb
egy ilyen feladatra mi a nem nagyon hülye megoldás szerintetek?
- 1757 megtekintés
Hozzászólások
technikai user + privát/publikus kulcsok használata?
--
A gyors gondolat többet ér, mint a gyors mozdulat.
- A hozzászóláshoz be kell jelentkezni
logikailag jogos lenne, de a kulcsokkal nem lenne login, ha jól értem mire gondolsz. nekem meg ez kéne. hülyeség biztos, de van egy illúziója annak, hogy én gépelek logint :)
--
xterm
- A hozzászóláshoz be kell jelentkezni
Akkor gépeld kétszer...
- A hozzászóláshoz be kell jelentkezni
meglehet félreértettelek, mea culpa :)
--
xterm
- A hozzászóláshoz be kell jelentkezni
Vpn a két gép között.
- A hozzászóláshoz be kell jelentkezni
nem annyira a kapcsolat biztonsága a kérdés. hanem a login 2 ponton, egy scriptben.
--
xterm
- A hozzászóláshoz be kell jelentkezni
rsync over ssh, minek jobban komplikalni?
---
"Már nem csak tehetségekből, de a hülyékből is kifogytunk..."
- A hozzászóláshoz be kell jelentkezni
félreértetted. a komolyabb feladat az, hogy 2 rsync login kiadva egy scripten belül és ennek a login info megadása.
--
xterm
- A hozzászóláshoz be kell jelentkezni
PEBKAC. Erre való a kulcsos auth (Hint: authorized_keys)
- A hozzászóláshoz be kell jelentkezni
rsync over ssh, es ssh-agent, custom, jelszoval vedett kulccsal.
A script elejen elinditod az ssh-agent-et, hozzaadod a kulcsot, aztan rsync. A cucc vegen (illetve hiba esten) pedig ssh-agent -k, es leallitod. Ennek egy egyszerubb modja, hogy feltetelezed, fut az ssh-agent (ill ha nem, inditasz egyet, es nem allitod le), es hozzaadod a kulcsot az elejen, a vegen meg removeolod.
ssh-agent(1) es ssh-add(1) man oldalak tudnak sokat segiteni.
A fenti eredmenye, hogy ssh-add -nal kerni fogja a jelszot, amit nem kell a scriptben tarolni. Maskor nem fogja, max ha lejar, de azt meg add-nal foreverre tudod allitani (ami egyebkent a default, hacsak nem lett az ssh-agent maskepp inditva).
--
|8]
- A hozzászóláshoz be kell jelentkezni
aham, akkor lehet én értetttem félre az első válaszadót (ezért mea culpa). utánaolvasok, ez akár jó is lehet. köszi a tippet!
--
xterm
- A hozzászóláshoz be kell jelentkezni
echo "kerem a jelszot"
read jelszo
export RSYNC_PASSWORD=$jelszo
...
rsync -arzv /innen1 rsync://server/ide
rsync -arzv /innen2 rsync://server/amoda
--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!
- A hozzászóláshoz be kell jelentkezni
Ezzel az a gond, hogy /proc/self/environ -ban ott lesz a jelszo. Igaz, csak az adott user fer hozza, aki futtatta a scriptet, de attol meg nem lesz sokkal jobb.
--
|8]
- A hozzászóláshoz be kell jelentkezni
csak az adott user fer hozza
biztonsági résnek érzed hogy egy user vissza tudja olvasni azt a jelszót, amit nemrég ő gépelt be?
ha előre meg akarod adni hogy az rsync később felhasználhassa, valahol tárolni kell. még jó hogy elfogadja env-ből, amit csak a user tud kiolvasni (és nem parancs argumentumban kell megadni).
vagy párhuzamosítod, hogy egyszerre induljon minden rsync, közel egy időben kérik a jelszót, aztán ha beindultak, le lehet pause-olni egyen kívül a többit - itt persze külön terminálban kéne indítani és lehet h a megállított rsync-ek eltájmáutolnak... :)
~~~~~~~~
deb http://deb.uucp.hu/ wheezy yazzy repack
- A hozzászóláshoz be kell jelentkezni
ssh-agent megoldja szepen a dolgot, es nincs meg a plain text jelszo egyszeruen hozzaferheto helyen. Plain text jelszo *barhol* olyasmi amit nem szeretek, ha el tudom kerulni. Egeszseges paranoia.
--
|8]
- A hozzászóláshoz be kell jelentkezni
Ezt érdemes megnézni rsync helyett: http://www.cis.upenn.edu/~bcpierce/unison/
Amiért én váltottam: Tud 2 irányú sync-et és olyan módja is van ami figyeli az fs változásokat és egyből küldi a módosításokat.
Szerintem ezekkel a paraméterekkel működnie kéne amit te akarsz:
ignore = Path *
ignorenot = Path dir1
ignorenot = Path dir2
- A hozzászóláshoz be kell jelentkezni