SSH, Subversion und Windows

Dieser kleine Artikel beschreibt, wie man ein Subversion-Repository unter WindowsXP einrichtet und per SSH gesichert nutzt.

Subversion

Die Datei svn-win32-1.4.2.zip herunterladen und nach c:\programme entpacken. Der Programm-Pfad muss der Umgebungsvariable PATH hinzugefügt werden. Dazu über das Kontextmenü vom Arbeitsplatz-Icon die Eigenschaften vom System öffnen und im Bereich Erweitert die Umgebungsvariablen anpassen. PATH findet sich in der unteren Hälfte. Das Verzeichnis C:\Programme\svn-win32-1.4.2\bin muss mit Hilfe eines Semikolons vom bisherigen Wert getrennt eingegeben werden.

Screenshot Systemeigenschaften

Möchte man die Ausgabe von deutschen Sonderzeichen (Unicode) in der Windows-Konsole (CP850) verhindern, kann man den Befehl „SET LC_MESSAGES=C“ absetzen. Die Texte werden dann auf englisch ausgegeben.

sc create svnserve binpath= "c:\svnserve\svnserve.exe --service 
--root m:\subversion" 
displayname= "Subversion" depend= tcpip start= auto

Nun ist es an der Zeit ein erstes Repositoty anzulegen. Wichtig! Ein Repository darf nicht auf einem Netzlaufwerk abgelegt werden. Auch nicht, wenn dieses auf einen Laufwerksbuchstaben gemappt ist. In unserem Beispiel liegen alle Repositories unterhalb von m:\subversion. Mit den folgenden 3 Befehlen wird das Verzeichnis anlegen und ein erstes Repository geschaffen.

cd m:\\subversion
md MyFirstProject
svnadmin create --fs-type bdb MyFirstProject

Im neuen Repository haben alle (auch ohne Anmeldung) das Recht zu lesen. Im nächsten Schritt werden die Rechte so erweitert, das angemeldete Benutzer schreiben dürfen. Die Standard-Konfigurationsdateien wurden von svnadmin unter M:\Subversion\MyFirstProject\conf abgelegt.

Die Datei svnserve.conf legt grundlegende Einstellungen für den Zugriff per SVN fest. Wir bestimmen, das jeder lesen kann und nur angemeldete Benutzer schreiben dürfen.

[general]
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz
realm = My First Repository

In der passwd wird jedem Benutzer ein Kennwort zugewiesen.

[users]
mb = mbGeheim
os = osGeheim

Welcher Benutzer welche Ressourcen des Repository nutzen kann, wird in der Datei authz festgelegt.

[groups]
authors = mb,os

[/]
@authors = rw
* = r

Alle drei Dateien sind gut dokumentiert und ermöglichen weit mehr als in diesem kleinen Beispiel gezeigt.

CopSSH

Für den gesicherten Zugriff installieren wir CopSSH. Einfach dem Installationsassistenten folgen und anschließend einen Benutzer freischalten. Dazu steht im Start-Menü ein entsprechendes Tool zur Verfügung.

Für den Verbindungsaufbau ohne Kennwortabfrage wird ein Schlüsselpaar mit Puttygen erzeugt.

Screenshot PuttyGen

Der öffentliche Schlüssel („Public Key“) kann direkt aus Puttygen kopiert und der Datei C:\Programme\copSSH\home\mb\.ssh\authorized_keys angehängt werden (mb entspricht dem Benutzer und damit dem Login-Namen für den das Schlüsselpaar erzeugt wurde). Meldet man sich per SSH mit einem privaten Schlüssel an, der zu einem öffentlichen Schlüssen in der authorized_keys passt, dann wird der Zugriff gewährt.

Screenshot Explorer

Fehlt zum Schluss nur noch der Tunnel für den gesicherten Zugriff per SSH. Wir verwenden Putty und legen für den bequemen Zugriff eine neue Session an. Der Hostname entspricht der Ip-Adresse unseres Zielrechners (auf dem wir CopSSH installiert haben), im Bereich Connection » Data muss der Auto-login username gesetzt werden und der private Schlüssen wird im Bereich Connection » SSH » Auth hinterlegt.

Im Abschnitt Connection » SSH » Tunnel wird der eigentliche Tunnel konfiguriert. Alle Pakete für den Source Port 3690 werden an Destination 192.168.51.51:3690 weitergeleitet. Wobei die Ip-Adresse entsprechend anzupassen ist. Sie entspricht der internen Ip des Zielrechners.

Screenshot Putty Tunnel

Sind alle Einstellungen gemacht, kann die Session im gleichnamigen Bereich gespeichert werden und mit Open eine erste Verbindung zum Zielrechner aufgebaut werden.

Hat alles geklappt, kann – so lange wie die Verbindung besteht – das eingerichtete Repository verschlüsselt mit der URL svn://localhost/MyFirstProject genutzt werden.

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.