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).
HinweisDie 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).
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 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.
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 für ssh2-Schlüssel müsste es heißen: |
Auf dem CVS-Server einloggen, dann:
oracle@rz-dbprakt:~> mkdir -p .ssh # für ssh2-Schlüssel müsste es heißen: # oracle@rz-dbprakt:~>rm id_rsa.pub id_dsa.pub oracle@rz-dbprakt:~>logout |
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.
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.
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!
CVSROOT
eingeben in der Form :ext:username@hostname:cvs-verzeichnis
plink.exe
hinschreiben (Diese Zeile macht
genau dasselbe wie die Umgebungsvariable CVS_RSH=ssh beim Linux-SSH-Client)