Sicherer SSH-Zugriff von Windows auf ein CVS-Repository mit WinCVS

 Diese Seite drucken


"Sicher" bedeutet in diesem Zusammenhang, dass Unbefugte mit üblichen technischen Mitteln nicht an den übertragenen Quellcode bzw. übertragene Passwörter gelangen können. Es wird vorausgesetzt, dass der Benutzer (hier: oracle) bereits ein Konto auf dem Linux-Host (hier: rz-dbprakt.rz.uni-karlsruhe.de) hat, je nach DNS-Konfiguration muss evtl. der vollständige Name host.domain angegeben werden) besitzt und dort bereits CVS und OpenSSH installiert sind (SSH-Protokoll-Version 1.5 oder höher).

Hinweis
Die im folgenden beschriebenen Verzeichnisnamen sind nur Empfehlungen und können angepasst werden. Ebenso sind Benutzer- und Hostnamen nur Beispiele und müssen angepasst werden.

Einen Windows-ssh-Client einrichten - 1. PuTTY installieren

Die PuTTY-Programme (Version 0.52 oder höher), Plink, PSCP, Pageant und PuTTYgen von der PuTTY-Download-Seite herunterladen und in das Verzeichnis c:\programme\putty installieren.

Ein Home-Verzeichnis zum Speichern persönlicher Dateien (Home-Verzeichnis) für den gewünschten User anlegen, z. B. c:\home\oracle.
Darin das Unterverzeichnis .ssh anlegen: Das geht nicht unter Windows, nur an der MS-DOS-Eingabeaufforderung:
 

C:\> cd home\oracle
C:\> mkdir .ssh

Den Wert c:\programme\putty der Umgebungsvariable PATH hinzufügen. Dies kann über Startmenü -> Einstellungen -> Systemsteuerung -> System -> Erweitert -> Umgebungsvariablen erfolgen. Als Trennzeichen zu anderen Verzeichnisnamen ist das Semikolon zu verwenden.

Testen der Verbindung: zunächst im Fallback-Modus mit Passwort.
PuTTY starten und Protokoll "SSH" auswählen, Einstellungen als "Default Settings" abspeichern (siehe Bild).

PuTTY-Konfigurations-Dialog
 
Zum Testen benutzen wir das Kommandozeilentool von PuTTY: Plink. Dazu müssen wir die MS-DOS-Eingabeaufforderung öffnen und folgenden Befehl eingeben:

plink -v oracle@rz-dbprakt.rz.uni-karlsruhe.de

Hier sollte UNBEDINGT der Hostname GENAUSO wie später in CVS angegeben werden, inkl. Domain.) Jetzt wird Plink mit Enter gestartet. Evtl. wird eine Warnung ausgeben, dass der Host unbekannt ist, mit y geht's weiter. Es wird das Benutzerpasswort für Benutzer oracle auf dem Linux-Hostrechner rz-dbprakt abgefragt. Passwort eingeben. Jetzt ist (hoffentlich) das Login erfolgt, mit logout abmelden.
 

Einen Windows-ssh-Client einrichten - 2. Schlüssel anlegen und auf den Hostrechner kopieren

Einen Schlüssel anlegen: Dazu PuTTYgen starten. Der Typ des Schlüssels (SSH1-RSA, SSH2-RSA oder SSH2-DSA) hängt vom Server ab. Wenn man nicht weiss, welche Schlüsseltypen vom Server unterstützt werden, fragt man den Systemverantwortlichen oder erzeugt am besten gleich drei Schlüssel, und probiert sie in der Reihenfolge rsa1, rsa, dsa aus.
Dann einfach auf "Generate" klicken, dabei ein bisschen die Maus hin- und herschubsen (um Zufallszahlen zu erzeugen).



Als "Key comment" einen sinnvollen Text eingeben, er dient nur als Merkhilfe (für den Benutzer) und sollte eine eindeutige Beschreibung des eigenen Rechners (und evtl. den Benutzernamen auf dem eigenen Rechner) beinhalten Beispiel: "oracle@rzm-haberer (SSH2 RSA)"."Key passphrase" kann leer bleiben (unsicher), sollte aus Bequemlichkeitsgründen nicht zu lang, aus Sicherheitsgründen nicht zu kurz sein. Wer mehrere Schlüsseltypen (s. o.) erzeugt, kann auch für alle die gleiche "passphrase" wählen.

SSH1-RSA-Schlüssel: Den Schlüssel mit "Save" in c:\home\oracle\.ssh\identity abspeichern. Den Public Key markieren und mit dem Editor in c:\home\oracle\.ssh\identity.pub ablegen.

SSH2-RSA-Schlüssel: Den Schlüssel mit "Save" in c:\home\oracle\.ssh\id_rsa abspeichern. Den Public Key markieren und mit dem Editor in c:\home\oracle\.ssh\id_rsa.pub ablegen.

SSH2-DSA-Schlüssel: Den Schlüssel mit "Save" in c:\home\oracle\.ssh\id_dsa abspeichern. Den Public Key markieren und mit dem Windows-Editor in c:\home\oracle\.ssh\id_dsa.pub ablegen.

Sicherheitshinweis

Der geheime Teil des Schlüssels (Datei identity, bzw. id_rsa, bzw. id_dsa) sollte den Rechner niemals verlassen! Bei einer Installation auf einem Zweitrechner sollte man lieber einen weiteren Schlüssel generieren.

Den öffentlichen Teil des gerade erzeugten Schlüssels mit pscp auf den CVS-Server kopieren (wer WinSCP installiert hat, kann auch damit kopieren):

C:\> cd \home\oracle\.ssh
C:\> pscp identity.pub oracle@rz-dbprakt.rz.uni-karlsruhe.de

für ssh2-Schlüssel müsste es heißen:
C:\> pscp id-rsa.pub id-dsa.pub oracle@rz-dbprakt.rz.uni-karlsruhe.de

C:\>plink oracle@rz-dbprakt.rz.uni-karlsruhe.de

Auf dem CVS-Server einloggen, dann:

oracle@rz-dbprakt:~> mkdir -p .ssh
oracle@rz-dbprakt:~> cat identity.pub >>.ssh/authorized_keys

# für ssh2-Schlüssel müsste es heißen:
# oracle@rz-dbprakt:~>cat id_rsa.pub id_dsa.pub >>.ssh/authorized_keys2

oracle@rz-dbprakt:~> chmod -R 700 .ssh
oracle@rz-dbprakt:~>rm identity.pub

# oracle@rz-dbprakt:~>rm id_rsa.pub id_dsa.pub

oracle@rz-dbprakt:~>logout

Einen Windows-ssh-Client einrichten - 3. Privat Keys von Pageant verwalten lassen

Pageant starten, am besten durch Einrichten eines Icons, siehe Bild. Aufnahme in die Autostart-Gruppe ist auch möglich. Pageant muss vor jeder WinCVS-Sitzung gestartet werden. Als Argument den zu benutzenden Schlüssel angeben, oder gleich alle drei.

Eigenschaften-Menü des Pageant-Icons

Erneuter Test (nachdem Pageant läuft und Passphrase eingegeben wurde):

plink -v oracle@rz-dbprakt.rz.uni-karlsruhe.de

Wenn alles geklappt hat, erfolgt jetzt die Authentifizierung durch Pageant! Die Meldungen geben Hinweise, welche Schlüsseltypen vom Server unterstützt werden.

Sicherheitshinweis

Wenn Pageant gestartet ist, kann sich jeder, der physischen Zugang zu Deinem Rechner hat, auf dem CVS-Hostrechner einloggen! Bei längerer Abwesenheit entweder Pageant beenden (über Taskbar, siehe Bild) oder Bildschirmschoner mit Passwortschutz benutzen!

Pageant-Icon im Taskbar

WinCVS einrichten und konfigurieren

WinCVS-Preferences/Globals-Menü

WinCVS-Preferences/Ports-Menü

WinCVS-Preferences/WinCvs-Menü



20-08-2002   Petra Haberer  Version 1.0.0