|
Eine verdammt kurze WinCVS-Beschreibung
|
|
|
SecureShell
|
|
|
|
Im folgenden Text wird eine Möglichkeit beschrieben, wie man
WinCVS in Verbindung mit einer secure-Shell ohne
Passwortabfrage benutzen kann. Der Fokus liegt auf einer
Installation, die "zu Hause" durchgeführt werden kann. Am Ende
des Textes gibt es noch einen Hinweis für die Nutzung im FRZ.
|
|
|
|
ssh bietet drei Möglichkeiten einen Nutzer zu
identifizieren. Eine davon funktioniert mittels eines
kryptographischen Schlüsselpaares. Einer dieser Schlüssel
wird als privat bezeichnet, der andere als
public .
|
|
|
Das Prinzip funktioniert folgendermaßen: Der öffentliche
Schlüssel ist jedermann zugänglich. Der private oder geheime
Schlüssel darf niemandem sonst bekannt sein. Um dem Empfänger
eine Botschaft zu übertragen, benutzt man den öffentlichen
Schlüssel der Person um die Nachricht zu verschlüsseln. Sie
kann nicht mit dem öffentlichen Schlüssel wieder entschlüsselt
werden. Der Empfänger verwendet seinen privaten Schlüssel für
die Entschlüsselung der Botschaft.
|
|
|
Dieses Verfahren kann auch benutzt werden um die Identität des
Kommunikationspartners festzustellen. Dabei wird eine zwischen
den zwei Kommunikationspartnern vereinbarte Botschaft mit dem
privaten Schlüssel des Senders verschlüsselt. Der Empfänger
entschlüsselt diese Botschaft mit dem öffentlichen und kann
nun davon ausgehen, dass er mit dem richtigen Partner
kommuniziert. Dieses Verfahren wird auch als signieren
bezeichnet.
|
|
|
ssh führt eine Datei authorized_keys in der eine
Reihe von öffentlichen Schlüsseln geführt werden. Wenn sich
jetzt jemand anmelden möchte (ohne dabei sein Passwort
eintippen zu wollen) sendet er seinen öffentlichen Schlüssel,
den er mit seinem privaten Schlüssel signiert hat. Ist dieser
öffentliche Schlüssel in der authorized_keys
enthalten und die Signatur ist korrekt, dann wird der Nutzer
akzeptiert.
|
|
|
|
Generell gilt: Der Nutzer uw469478 ist hier nur
beispielhaft und immer durch das eigene Login zu ersetzen.
|
|
|
Natürlich müssen wir, um WinCVS zu nutzen, es erst einmal
installieren. WinCVS findet man unter http://www.wincvs.org/. Alternativ
kann das Setup-Programm (verpackt in einem Zip-Archiv) auch
von hier gesaugt werden: WinCVS.zip.
|
|
|
Als nächstes benötigen wir eine
Secure-Shell. Bekommen können wir eine solche unter http://www.chiark.greenend.org.uk/~sgtatham/putty/.
Wir benötigen folgende Programme (alternativ können sie auch
gleich von hier heruntergeladen werden:
|
|
|
Diese vier Programme werden in C:\Programme\Putty (neu
anlegen) kopiert. Eine Installationsroutine ist nicht
vorhanden. Es gibt auch keinen Eintrag im Startmenü, d.h. wenn
eines der Programme gestartet werden soll, muss man mittels
des Explorers nach C:\Programme\Putty wechseln und das
entsprechende Programm anklickern.
|
|
|
|
Es ist soweit: wir müssen in die dunklen Welten von UNIX
abtauchen. Dazu startet man Putty.exe und
verbindet sich mit dem Rechner
ganymed.inf.tu-dresden.de . Im Feld Hostname ist
der Rechnername ganymed.inf.tu-dresden.de zu
setzen und als Protokoll ist SSH zu wählen - siehe
Abbildung. Nach drücken des Knopfes Open
erscheint eine Konsole.
|
|
|
Es wird gefragt, ob die Verbindung zu ganymed
aufgebaut werden soll, und nach unseren Nutzerdaten
(login/passwd). Danach sollte uns ganymed
ungefähr so begrüßen:
|
|
|
 |  |  |
 |
Linux ganymed 2.2.20pre10 #1 SMP Fri Oct 19 12:23:10 CEST
2001 i686 unknown
Most of the programs included with the Debian GNU/Linux system are
freely redistributable; the exact distribution terms for each program
are described in the individual files in /usr/share/doc/*/copyright
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Wed Nov 13 18:07:33 2002 from ganymed
Operating system is Linux
ganymed/uw469478 >
|  |
 |  |  |
|
|
|
|
Als nächstes erzeugen wir unsere Schlüsselpaare. Das
erledigen wir mir dem Befehl ssh-keygen .
|
|
|
SSH unterstützt zwei Protokollversionen, die jeweils unterschiedliches Format für die Schlüssel benutzen. Wir erzeugen am besten beide. Für die erste Version mit dem Befehl:
|
|
|
|
|
|
ssh-keygen fragt, wo es die Schlüssel speichern
soll. Wir übernehmen die Voreinstellungen und drücken einfach
Enter. Es möchte auch ein Passwort wissen, welches verwendet
werden soll. Falls der private Schlüssel doch einmal in fremde
Hände fallen sollte bietet das Passwort einen gewissen Schutz
vor unberechtigter Nutzung. Um die Sache zu vereinfachten (und
da ich dem FRZ traue) benutzen wir kein Passwort und lassen
die Eingabe leer (und drücken somit auch hier einfach
Enter). Die Nutzung eines Passwortes verkompliziert die
Nutzung aber nur unwesentlich und insbesondere in einer
UNIX/Linux - Umgebung sind ein paar Schritte mehr notwendig:
starten eines ssh-agent ...
|
|
|
In dieser Beschreibung wird davon ausgegangen, dass kein
Passwort verwendet wird. Sollte aber jemand Bedenken haben, so
empfehle ich ihm durchaus ein Passwort zu verwenden und sich
die entsprechenden Veränderungen selbst zu erarbeiten.
|
|
|
Der komplette Vorgang sieht dann ungefähr so aus:
|
|
|
 |  |  |
 |
ganymed/uw469478 > ssh-keygen -t rsa1
Generating public/private rsa1 key pair.
Enter file in which to save the key (/usr/users/mat99/uw469478/.ssh/identity):
Created directory '/usr/users/mat99/uw469478/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /usr/users/mat99/uw469478/.ssh/identity.
Your public key has been saved in /usr/users/mat99/uw469478/.ssh/identity.pub.
The key fingerprint is:
5c:08:dd:af:82:da:8a:bc:63:72:26:9f:b5:7f:4e:a5 uw469478@ganymed
ganymed/uw469478 >
|  |
 |  |  |
|
|
|
(Hinweis: ganymed/uw469478 ist die
Eingabeaufforderung und muss nicht geschrieben werden.)
|
|
|
Das Schlüsselpaar für die 2. Version erfolgt äquivalent mit
|
|
|
|
|
|
Hinweis: Sollte etwas schiefgegangen sein, so kann man mit dem
Befehl rm -rf ~/.ssh das Verzeichnis löschen und
das ganze noch einmal wiederholen.
|
|
|
Wichtig!
Jeder im Besitz unserer privaten Schlüssel ist in der Lage,
sich im FRZ ohne Passwort anzumelden. Darum ist es wichtig,
sie immer zu hüten - auch auf dem heimischen PC.
Die Schlüssel
niemals über unsichere Kanäle verbreiten oder per mail an
AllUsers@mail.inf.tu-dresden.de schicken.
|
|
|
|
Jetzt müssen wir den öffentlichen Schlüssel in die Datei
authorized_keys schreiben. Dazu wechselt man mit
|
|
|
|
|
|
das Verzeichnis. Mit
|
|
|
 |  |  |
 |
cat identity.pub id_dsa.pub >> authorized_keys
|  |
 |  |  |
|
|
|
hängt man die Schlüssel an die Datei und wechselt mit
|
|
|
|
|
|
zurück in das Homeverzeichnis.
|
|
|
|
irz601, unser CVS-Server, muss auch noch die Schlüssel
erhalten. Da seit dem Hochwasser die Homeverzeichnisse
getrennt sind, muss das Verzeichnis mit
|
|
|
|
|
|
auf den Rechner kopiert werden (auf den Doppelpunkt
achten!). scp fragt auch hier ob die Verbindung etabliert
werden soll (yes eintippen) und nach dem Passwort des
FRZ-Logins. Der ganze Vorgang sieht dann wie folgt aus:
|
|
|
 |  |  |
 |
ganymed/uw469478 > scp -r ~/.ssh irz601:
The authenticity of host 'irz601 (141.76.2.66)' can't be established.
DSA key fingerprint is 86:21:28:18:9a:1a:16:ca:7b:ed:17:bf:ab:9b:36:53.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'irz601,141.76.2.66' (DSA) to the list of known
hosts.
uw469478@irz601's password:
identity 100%
|************************************************************************************|
531 00:00
identity.pub 100%
|************************************************************************************|
335 00:00
id_dsa 100%
|************************************************************************************|
672 00:00
id_dsa.pub 100%
|************************************************************************************|
606 00:00
authorized_keys 100%
|************************************************************************************|
941 00:00
known_hosts 100%
|************************************************************************************|
608 00:00
ganymed/uw469478 >
|  |
 |  |  |
|
|
|
|
Das war es eigentlich schon auf der Unix-Seite. Wenn man jetzt
eine Secure-Shell mittels
|
|
|
|
|
|
benutzt, sollte der Rechner irz601 nicht mehr nach einem
Passwort fragen. Hier der Beweis:
|
|
|
 |  |  |
 |
ganymed/uw469478 > ssh irz601
Last login: Wed Nov 13 19:18:38 2002 from ganymed.inf.tu-
Sun Microsystems Inc. SunOS 5.7 Generic October 1998
Sun Microsystems Inc. SunOS 5.7 Generic October 1998
irz601:~>
|  |
 |  |  |
|
|
|
Sehr schön! Sämtliche cvs Kommandos werden jetzt
unter UNIX im FRZ ohne Passwortabfrage
durchgeführt. (Auf die heimatliche Linux-Kiste muss nur das
.ssh -Verzeichnis - entsprechend wie beim irz601 - kopiert
werden und dann entfällt auch hier die nervende Tipperei.)
|
|
|
|
Wir benötigen unsere Schlüssel auch auf unserem PC zu
Hause. Um pscp.exe - ein sicheres Kopierprogramm
- zu nutzen, starten wir mittels Start->Ausführen
und Eingeben von cmd eine Konsole. Danach
wechselt man in das Verzeichnis
C:\Programme\Putty\ und führt den Befehl
|
|
|
 |  |  |
 |
pscp -r uw469478@irz601.inf.tu-dresden.de:.ssh SSH
|  |
 |  |  |
|
|
|
aus (siehe auch folgende Abbildung).
Unsere Schlüssel sollten sich nun im Verzeichnis
C:\Programme\Putty\SSH\ befinden.
|
|
|
|
PAgent verwaltet die Schlüssel. Dazu muß
PAgent gestartet werden. Es erscheint im SysTray
(Feld links neben der Uhr) ein kleines Symbol: ein Computer
mit einem Hut (siehe Abbildung).
|
|
|
Mit rechtem Mausklick auf den PAgent können wir unter
Add - Keys Schlüssel hinzufügen; wir wählen
identity aus unserer Schlüsselsammlung
(C:\Programme\Ptty\SSH ). Im Fenster PAgent
Key List sollte unser Schlüssel erscheinen. Sollte bei
der Erzeugung der Schlüssel ein Passwort vergeben worden sein,
so fragt PAgent dies ab. Siehe auch nachstehende
Abbildung.
|
|
|
|
Jetzt testen wir unsere Installation. Wieder eine
Windows-Konsole (Start->Ausführen->cmd ) starten
und mittels
|
|
|
 |  |  |
 |
plink uw469478@irz601.inf.tu-dresden.de echo "BlaBla"
|  |
 |  |  |
|
|
|
versuchen eine Verbindung zu dem Rechner irz601 aufzubauen, um
den Befehl echo "BlaBla" entfernt auszuführen -
ohne Passwortabfrage. Der Befehl echo "BlaBla"
druckt einfach das Wort "BlaBla" auf dem Bildschirm aus - wird
allerdings auf der entfernten Maschine ausgeführt und die
Ausgabe erfolgt auf unserer Konsole. Ein erfolgreicher Versuch
sollte ungefähr wie folgende Abbildung aussehen.
|
|
|
|
WinCVS wird wie im Teil Konfiguration beschrieben
eingerichtet. Allein bei den Angaben zur ssh wird
anders vorgegangen: Im Dialog Admin->Preferences
wird im Reiter Ports im Eingabefeld für eine alternative
rsh folgendes angegeben:
C:\Programme\Putty\plink (siehe Abbildung). Das
ist schon alles.
|
|
|
Ab jetzt sollte WinCVS nicht mehr nach einem Passwort fragen,
wenn eine CVS-Aktion gestartet wird. Allein eine kurze
Verzögerung und der blaue "Fischbalken" am unteren Rand
sollten anzeigen, dass eine Verbindung zum FRZ aufgebaut
wird. Abbildung 20 zeigt einen WinCVS-Client nach der
erforderlichen Konfiguration und dem Auschecken des
Beispielmodules kinounix .
|
|
|
|
Auch im FRZ sollte es kein Problem sein, die Programme der
Putty-Familie zu benutzen. Es empfiehlt sich, die Programme in
einem Verzeichnis unter H:\Putty zu
speichern. Die privaten und öffentlichen Schlüssel befinden
sich im Verzeichnis H:\.ssh\ . Die Einstellungen
in WinCVS zu PLink müssen entsprechend geändert werden und
nach Starten von PAgent und hinzufügen der
Schlüssel sollte auch im FRZ eine Nutzung ohne ständige
Passwortabfrage möglich sein.
|
|
|
|
|