SVN über SSH

Um Subversion über SSH auszuführen, benötigen Sie im Grunde eine Shell auf dem Zielsystem und ein dort liegendes Subversion-Depot, das entsprechend vorhergehender Beschreibung erstellt wurde. Das Depot muss für den Zugriff der Benutzer des fernen Systems eingerichtet werden.

Unter der Annahme, dass Ihr Benutzername auf dem Client-System derselbe wie der auf der Sever-Seite ist, ist nicht viel zu konfigurieren. Ändern Sie nur in allen in diesem Handbuch gezeigten Beispielen die Protokollangabe von file:// in svn+ssh://Name-des-fernen-Nutzers@Server-Hostname.

Beachten Sie, dass während der Aktionen von svn-buildpackage-Werkzeugen viele SSH-Aufrufe gemacht werden können. Daher wird der Benutzer nach seinen Anmeldedaten gefragt. Die normale Methode damit umzugehen ist die Verwendung einer SSH-Schlüsselauthentifizierung zusammen mit ssh-agent und ssh-add zum Zwischenspeichern der Passphrase. Eine andere Herangehensweise, die ebenfalls eine merkliche Geschwindigkeitssteigerung bringt, ist die Benutzung einer zwischengespeicherten SSH-Verbindung. Dies kann mit einer neuen Funktionalität von OpenSSH erledigt werden (lesen Sie die GNU-Kurzanleitung SSH connection caching) oder mit einem Werkzeug eines Drittanbieters wie fsh.

Falls Sie fsh über ssh benutzen möchten, können Sie eine benutzerdefinierte Transportmethode in der Subversion-Konfiguration angeben. Zu diesem Zweck bearbeiten Sie die Datei ~/.subversion/config und fügen Sie ihr den Abschnitt [tunnels] hinzu, gefolgt von Ihrer benutzerdefinierten Transportdefinition. Beispiel:

Beispiel 2.3. Beispiel eines benutzerdefinierten SSH-Tunnelbefehls

# persönliche Subversion-Konfiguration mit benutzerdefiniertem SSH-Tunnelbefehl
[tunnels]
# SSH-Konto auf svn.d.o
# in der SSH-Konfiguration ist Komprimierung aktiviert
deb = fsh -l <user>
# SSH-Konto für NQ-Intranet, fester Benutzername wird gesetzt
nq = ssh -C -l zomb

Sie können die neu definierten Tunnel auf eine ähnliche Art wie oben beschrieben nutzen. Ersetzen Sie aber svn+ssh durch svn+Tunnelname, so dass die URL am Ende etwa so aussieht:

svn+deb://svn.debian.org/svn/mein_Projekt/unser_Paket/trunk