Permalink

6

TortoiseSVN über SSH ohne Passworteingabe

Für meine privaten Projekte nutze ich das SVN von Uberspace. Das funktioniert wie im Wiki von Uberspace beschrieben per svn+ssh. Allerdings musste, nach der dort beschriebenen Anleitung, bei jeder Aktion (Commit, Update, etc.) das SSH-Passwort eingegeben werden. Weil das auf Dauer nicht ganz so komfortabel ist, nutze ich nun ein SSH-Schlüsselpaar zur Authentifizierung.

  1. Anmeldung an der SSH des SVN-Servers
  2. Durch „ssh-keygen -b 1024 -t dsa -f keyfile“ das Schlüsselpaar keyfile (private-key) und keyfile.pub (public-key) anlegen. Ihr werdet aufgefordert eine Passphrase einzugeben. Falls ihr hier etwas eingebt, müsst ihr es ebenfalls bei jeder SVN-Aktion eintippen.
  3. Falls das Verzeichnis .ssh in eurem Home-Verzeichnis noch nicht vorhanden ist, legt es an (per mkdir .ssh) und gebt ihm per chmod 700 .ssh die benötigten Rechte
  4. Kopiert den public-key in das Verzeichnis .ssh, benennt es in authorized_keys um. (cp keyfile.pub /home/username/.ssh/authorized_keys) und gebt ihm die entsprechenden Rechte (chmod 600 /home/username/.ssh/authorized_keys)
  5. Ladet den private-key herunter, öffnet ihn mit PuTTYgen (Conversions > Import key) und speichert ihn im PuTTY-eigenen Format (Save private key)
  6. Nun öffnet die Settings von TortoiseSVN (Windows Explorer > Rechtsklick auf ein Verzeichnis > TortoiseSVN > Settings) und geht dort auf den Punkt „Network“.
  7. Hier hinterlegt ihr bei SSH-Client den Pfad zu dem SSH-Client von TortoiseSVN und dem private-key. Bei mir lautet es z.B. wie folgt
    „C:\Program Files\TortoiseSVN\bin\TortoisePlink.exe“ -i C:\Users\gerrit\keyfile.ppk

Danach kann die Verbindung zu eurem SVN-Server auch ohne die Eingabe eines Passwortes stattfinden. Passt gut auf den private-key auf, denn er gilt als vollständiger Ersatz des Passwortes.

Der private-key kann natürlich auch zum normalen Verbinden mit der SSH verwendet werden. Dafür muss er einfach in PuTTY unter Connection > SSH > Auth eingetragen werden. Natürlich funktioniert diese Anleitung nicht nur bei Uberspace. 🙂

6 Kommentare

  1. Danke für den hilfreichen Artikel!
    Ich würde vielleicht noch hinzugeben, dass der private key am besten im User home Verzeichnis aufgehoben ist, weil zumindest grundlegend zugriffsgeschützt, siehe http://en.wikipedia.org/wiki/Home_directory#Default_Home_Directory_per_Operating_System
    Im Falle von Windows zum Beispiel
    “C:\Program Files\TortoiseSVN\bin\TortoisePlink.exe” -i „C:\Dokumente und Einstellungen\USERNAME\.ssh\keyfile.ppk“
    %UserProfile% funktioniert an der Stelle nicht.

  2. Hi Gerrit,

    funktioniert der SVN-Zugriff bei Dir damit zuverlässig? Ich habe arge Probleme damit, auf das Repo in meinem Uberspace zuzugreifen, habe allerdings auch ein anderes Setup:

    – in PuTTY gespeicherte Session ’svn‘ mit Angabe des Namens meines Uberspaces, SSH-Auth via Pageant und Angabe des Speicherortes des Private Keys
    – Pageant kennt das in o.g. Verbindung referenzierten PK und hat ihn entsperrt vorliegen
    . svnserve-Aufruf in ~/.ssh/authorized_keys bei Authentifizierung per o.g. PK zur Anmeldung am Uberspace gemäß der vielen Anleitungen im Netz (tunnel-Modus, kein TTY-Aufruf, tunnel-user, …)
    – Aufruf im Repo Browser beispielsweise dann: svn+ssh://svn/default -> ~/svn/repos/default ist das Repo an sich, der Pfad dorthin ist in ~/.ssh/authorized_keys per Parameter -r angegeben

    Der Aufruf klappt manchmal, ist aber arg lahm, selbst bei DSL 16.000. Dann bricht er mal wieder komplett zusammen oder ist gar nicht nutzbar.

    Ist Deine Art des Zugriffes stabil und zuverlässig nutzbar?
    VG, pir187

    • Hallo!

      Ich nutze die Lösung aktuell nicht mehr, sondern nutze eine lokale Variante. Allerdings lief die Lösung soweit stabil. Ich würde einfach mal die oben beschriebene Lösung ausprobieren. In jedem Fall, wäre ein Feedback von dir hilfreich!

      Viele Grüße aus Oldenburg
      Gerrit

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.