SVN+SSH kérdés

Fórumok

Sziasztok!
SSH-n keresztül szeretnék SVN elérést adni valakinek. Legegyszerűbb lenne SVN+SSH elérést használni, mert azt az SVN kliensek tudják (pl. TortoiseSVN). Nade ahhoz, hogy ez működjön, írási + olvasási jogot kell adni az illetőnek a /home/svn megfelelő alkönyvtárára. Ha nincs írási joga, akkor nem tud kommitolni. Ha megadom az írási jogot, akkor persze minden hibátlanul működik, nem is ezzel van a gond.
A probléma ott van, hogy ettől kezdve az illető felhasználó bejöhet SSH-n, bemehet a /home/svn alá, és letörölhet mindent, amihez írási jogot adtam neki. Nem feltételezek én rosszindulatot, de ez mégiscsak egy biztonsági lyuk, amit károkozásra lehet használni.

A kérdésem az lenne, hogy nem lehet valahogy megtiltani az SSH belépést, de engedélyezni az SVN+SSH hozzáférést? Csinált már ilyet valaki?

Hozzászólások

ssh -L -tunel? és svn://
Putty tudja.

Ha commitolni tud, akkor törölni is tud a repository-ból. Rendszeres mentéssel vagy repository tükrözéssel elkerülhető az adatvesztés, ha mindent legyak valaki filerendszer szinten.
Mikor utoljára foglalkoztam svn-el (1.3 környéke) az ssh-n keresztül elérésnél nem lehetett szabályozni az irás/olvasás jogokat sem a repo-n belül (csak commit-hook-kal). Szóval az apache-os config lenne a megoldás ilyen esetben.

ssh nélkül svn+ssh? Ez valami vitz?
Akkor ne svn+ssh-t használj. Persze jó lesz az az svn+ssh, mert:
Írási jog adható a repository adott részére is, nem csak az egészre. A repositoryban van egy conf/ könyvtár, abban az authz file. Ott tudod beállítani, hogy kinek milyen joga legyen, de erre nincs is igazán szükség, mert ha unix usert nem engedsz be, hanem mindenki mondjuk egy kijelölt userrel jön be ssh-n, akkor unix szinten semmit nem tud tenni, (saját publikus kulcsot használjon mindenki), shell nuku. Ha meg egy üres fájlt commitol be, akkor bármikor vissza állsz egy jó revízióra és kész.
--
unix -- több, mint kód. filozófia.
Life is feudal

user gépén gyártasz ssh - rsa (vagy dsa) kulcsot.
ssh-keygen -b 2048 -t rsa
ekkor keletkezik a ~/.ssh/id_rsa és ~/id_rsa.pub kulcs.
Az id_rsa.pub -ot átviszed a subversionös gépre
Ott a subversion home könyvtárában, a .ssh/authorized_keys fájlba beírod ezt:
command="svnserve -t -r ~svn --tunnel-user=USERNEVE,no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty" ...
(USERNEVE a subversionben a commitoknál jelenik majd meg pölö. Innen tudod, hogy ki kommitolt.
Mindenki svn userrel csatlakozik, svn jelszó senki által nem ismert, nem is létezik, mert kulcsos és az a kulcs nincs kiadva.)
...és közvetlen mögé kopizod az id_rsa.pub kulcsát. A kulcs és az elötte levők között space legyen.
Valami ilyesmi:
ssh-dss AAEsIttJonAKlucsc...
Jó hosszú lesz.

http://209.85.129.104/search?q=cache:Fwu-rZFI4FwJ:svn.collab.net/repos/…

--
unix -- több, mint kód. filozófia.
Life is feudal