Subversion durch einen PuTTY-Tunnel

Submitted by Erik Wegner on
Body

Besteht hinter einer Firewall nicht die Möglichkeit, eine direkte Verbindung zu einem Subversion-Server aufzubauen, jedoch der Zugriff via SSH, lässt sich ein Tunnel erstellen, der die Daten durchschleust. Dazu sind folgende Schritte nötig:

  1. in PuTTY-Zugriff auf den SSH-Server einrichten, unter Tunnel muss ein lokaler Port (10400) weitergeleitet werden an localhost:10500.
  2. Die SSH-Verbindung kann nun hergestellt werden und an der Gegenstelle wird der svnserve Prozess gestartet.
  3. auf dem lokalen Rechner kann mittels der URL svn://localhost:10400/repos1 auf das entfernte Subversion-Repository zugegriffen werden.

1. Konfiguration in PuTTY

Konfiguration der Port-Weiterleitung in PuTTY

  1. Aufruf der Port-Weiterleitungseinstellungen von PuTTY unter Category Connection, SSH, Tunnels
  2. Eingabe des lokalen Quellports 10400 und dem Ziel (localhost:10400)
  3. »Add«
  4. Der Eintrag erscheint in der Liste

Wird nun die Verbindung hergestellt, öffnet das lokale PuTTY den Quellport 10400. Alle Datenpakete, die hier ankommen, werden auf den Server weitergeleitet und dort an die Ziel-Adresse (localhost:10400) übergeben. Dies passiert auf dem Server, die Adresse localhost ist somit der Server selbst.

2. Starten des svnserve

Dies passiert auf dem entfernten System mit dem folgenden Aufruf:

svnserve -d --listen-host localhost --listen-port 10500 --foreground -r /home/user1/svnrepos/

Damit wird ein svnserve-Prozess gestartet, der auf einem Netzwerkport lauscht -d (Dämon), die Daten dafür geben listen-host localhost und listen-port 10500. Weiterhin soll der Prozess im Vordergrund bleiben foreground und nur Unterverzeichnisse r ab /home/user1/svnrepos/ bereit stellen.

3. Zugriff mit dem SVN-Client

Das entfernte Archiv steht jetzt so zur Verfügung, dass an einem lokalen Netzwerkport zugegriffen werden kann:

svn co svn://localhost:10400/repos1

Schreibzugriff gewähren

ACHTUNG! Diese Methode gewährt jedem Schreibzugriffe auf das Projektarchiv, ohne dass eine Benutzerüberprüfung stattfindet.

Details dazu sind im Subversion-Book enthalten.

Auf dem Server liegt die Datei /home/user1/svnrepos/repos1/conf/svnserve.conf. Mit dem Eintragen der folgenden zwei Zeilen erhält jeder Benutzer Schreibrechte:

[general]
anon-access = write

Die Methode der Berechtigungsvergabe ist davon abhängig, dass der Benutzer den svnserve-Prozess manuell startet und stoppt.