PDA

Bekijk de volledige versie : SVN+SSH kann svnserve nicht finden



phreak
13-05-2010, 21:02
Hey!

Ich kann über
svn://admin@192.168.1.1/opt/svn/repos auf meine Repository wunderbar zugreifen. Läuft alles toll.

Wenn ich aber über
svn+shh://admin@192.168.1.1/opt/svn/repos auf die Repository zugreifen möchte, kommt folgende Fehlermeldung:


sh: svnserve: not found
svn: Netzwerkverbindung wurde unerwartet geschlossen

Muss ich irgendwo noch eine Umgebungsvariable für openssh mit dem Pfad zu svnserve definieren?:confused:

Google und die Forensuche konnten mir da nicht weiterhelfen.

carterb
14-05-2010, 21:28
Hi,

nach dieser Anleitung habe ich es konfiguriert.
Ist sehr ausührlich erläutert.

http://tortoisesvn.net/docs/nightly/TortoiseSVN_de/tsvn-ssh-howto.html

bef
16-05-2010, 12:11
Da das ganze bei mir auch nicht (mehr) funktioniert (es ging glaubich mit tortoise 1.4 oder 1.5 noch -.- ), hab ich ein bisschen rumgesucht und dabei folgendes gefunden:

zuerst mein setup:
Router: rt-n16
Laptop: Win 7, TortoiseSVN, Putty / Plink (puttylink)

Vorgehen:
Wenn ich mit Putty auf den Router zugreife, kann ich die alle commands benutzen.
Wenn ich jedoch die plink.exe nutze (das was tortoise nutzt, um die ssh verbindung herzustellen), wird kein Kommando gefunden:

im cmd-Fenster von Windows folgendes eingeben(vom putty verzeichnis aus ausführen, svn ist eine gespeicherte putty-session mit key und benutzename):


plink.exe @svn svnserve -t

ergibt:


sh: svnserve: not found

das gleich mit "find" etc.
Weiss jemand wieso da nicht die normale .profile datei mit den Pfaden geladen wird? oder wo man die pfade angeben kann?

mfg Benj

carterb
18-05-2010, 07:48
Hi,

also in der Anleitung steht wirklich alles detailliert drin.
Erstellt das Schlüsselpaar, kopiert den pub-key ans Ende folgender Datei

/euer_svnuser_home/.ssh/authorized_keys
In der authorized_keys ist der pub-key in folgendes Kommando einzubetten:

command="svnserve -t -r /PATH/TO/REPO/ROOT/ --tunnel-user=EUERUSER",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty ssh-rsa EUER_PUB_KEY
Mit dem privaten Schlüssel errichtet Ihr eine putty Session (nach Anleitung) und speichert diese.
Dann könnt Ihr in Tortoise mit folgendem Befehl die svn+ssh-session starten:

svn+ssh://NAME_DER_PUTTYSESSION/REPO/
Also da sollte es keine Probleme geben. Ich nutze Windows nur selten, habe es aber soeben mit der aktuellen Tortoise-Version "TortoiseSVN 1.6.8, Build 19260 - 32 Bit" auf einem Win7-Rechner (Schande über mein Haupt;-)) getestet. Unter Debian nutze ich es aus der Kommandozeile (klappt auch) oder mit dem KDE-Tool "kdesvn". Mit allen Varianten habe ich Zugriff auf meine Repos.

Als Test könnt Ihr die gespeicherte Session mit Putty auch mal direkt starten. Ihr solltet eine Ausgabe, ähnlich dieser hier erhalten:

Using username "svnuser".
Authenticating with public key "imported-openssh-key"
Server refused to allocate pty
( success ( 2 2 ( ) ( edit-pipeline svndiff1 absent-entries commit-revprops depth log-revprops partial-replay ) ) )

Leider spricht Windows wenig mit Dir, wenn Ihr eine Linux-Kommandozeile habt, könnt Ihr versuchen das Repository mit den bekannten svn-Befehlen anzusteuern. Sollte etwas mit eurer Konfiguration im Argen sein, verraten es euch die Meldungen oder eine Log-Datei.

phreak
18-05-2010, 12:26
Danke für die Tipps.

Bei mir würde es jetzt glaube ich funktionieren.
Ich muss nur raus bekommen, wie ich über das gnome-termnal, ich arbeite nicht mit putty, den Schlüssel mitschicke.

Wenn ich
svn list svn+ssh://192.168.1.1 eingebe, muss ich das Passwort eingeben und danach bekomme ich die Meldung:


svn: No repository found in 'svn+ssh://192.168.1.1'

Klar, im authorized_keys steht auch wo sich das Repository befindet. Das wird aber nicht verschickt. :(
In der Datei
/opt/etc/xinetd.d/svnserve stand ja auch wo sich die Repository befindet, die habe ich entfernt. Sollte doch, oder? :)

Vielleicht weiß einer von euch, wie ich das über das gnome-terminal löse.

Ein anderes Problem habe ich mit dem Benutzer, der bei mir nach dem Flashen nicht gespeichert wird.
Wie macht ihr das, dass der Benutzer svnuser persistent ist? Immer beim Neustart neu anlegen?

phreak
18-05-2010, 13:43
So, habs jetzt mit dem gnome-terminal hin bekommen. :)

Einfach im Client


nano ~/.subversion/config

eingeben und unter Tunnel folgendes einfügen:

ssh = /usr/bin/ssh -l svnuser -i /home/client_username/.ssh/key

Was mich aber noch brennend interessieren würde, ist das mit dem persistenten svnuser und wie ihr die Rechte in der Repository gesetzt habt.


chmod -R g+w /opt/share/svn/repos

Würde der Gruppe für manchen Dateien zu viele Rechte verleihen und für anderen zu wenige. Es gibt Dateien, die nur gelesen, die anderen nur ausgeführt werden dürfen und mit anderen darf mal viel mehr anstellen.

Gibt es einen chmod Befehl mit dem man der Gruppe genau die gleichen Rechte, wie die des Besitzer der Dateien verpassen kann?

Allen Dateien einzeln die rechte zu geben finde ich bisschen mehr als mühselig.

carterb
18-05-2010, 14:58
Hi,

du kannst den Schlüssel auch fest einrichten mit:

ssh-add Keyfile
So mache ich es.


Gibt es einen chmod Befehl mit dem man der Gruppe genau die gleichen Rechte, wie die des Besitzer der Dateien verpassen kann?
Ja das geht:

man chmod

phreak
18-05-2010, 21:52
So, habe die Rechte jetzt übertragen. War das einfach. :o

Und das Problem mit dem persistenten Benutzer habe ich im Dutch Forum nachgelesen.http://wl500g.info/showthread.php?t=20880

Was man hier alles beherrschen muss, um so ein svn+ssh aufzusetzen. :D

carterb
18-05-2010, 22:31
Hi,

naja, dazu hättest Du das deutschsprachige Forum nicht verlassen müssen :rolleyes:

http://wl500g.info/showthread.php?t=12759

Schön das es funktioniert!