SSH und CVS im Terminal

bash
Für mein erstes Projekt "Automobile Manager" möchte ich natürlich gleich auf mein bereits, vorhandenes Versionskontrollsystem "CVS" zugreifen. Dies läuft auf dem gleichen Linux-Rechner wie diese Webseite und steht von überall zur Verfügung. Da "meine" Administratoren den direkten Zugriff nicht erlauben, muss ich den Weg über SSH gehen. Wie nicht anders zu erwarten war, läuft der SSH-Daemon natürlich nicht auf dem Standard-Port 22. Hier sind nun ein paar Schritte die das Leben erleichtern.

Bsp. Linux Benutzer : hansi
Bsp. Linux IP : 213.55.44.33
Bsp. Linux SSH-Port : 12345

Ohne Passwort-Eingabe auf den Linux-Rechner zugreifen
Wenn ich mich bisher auf meinem Linux-Rechner anmelden wollte, musste ich "slogin -p 12345 hansi@213.55.44.33" eingeben und mit dem Benutzer-Passwort bestätigen. Die folgenden Schritte ermöglichen schon einmal das Anmelden ohne Passwort:
  • Auf dem Mac das Terminal öffnen
  • Nun muss der private sowie der öffentliche Schlüssel generiert werden. Dies geschieht durch Eingabe von "ssh-keygen -t dsa". Den Speicherort für die beiden Dateien einfach per Eingabetaste bestätigen. Die "Passphrase" muss dabei nicht eingegeben werden, ist aber sinnvoll! Im Anschluss sollten in dem Verzeichnis "~/.ssh" die beiden Dateien "id_dsa" und "id_dsa.pub" vorliegen
  • Der öffentliche Schlüssel "id_dsa.pub" muss nun unter dem neuen Namen "authorized_keys2" in das "~/.ssh"-Verzeichnis des Linux-Benutzers kopiert werden. Dies geht über den Befehl "scp -P 12345 ~/.ssh/id_dsa.pub 213.55.44.33:.ssh/authorized_keys2". Die Port-Angabe "-P 12345" brauche ich nur, weil der SSH-Daemon nicht auf dem Standard-Port 22 läuft.
Jetzt kann ich schon einmal ohne Eingabe eines Passwortes auf dem Linux-Rechner anmelden.

Ohne Eingabe des SSH-Ports zugreifen
Damit nicht immer der SSH-Port eingeben werden muss, nutzen die SSH-Tools die Konfigurationsdatei "~/.ssh/config". Sie muss allerdings erst noch mit einem Editor angelegt und gefüllt werden. Die Konfigurationsdatei bekommt folgenden Inhalt:

Host 213.55.44.33
    Compression no
    Port 12345

Nun kann ich mich mit "slogin hansi@213.55.44.33" ohne Eingabe des Ports oder eines Passwortes auf dem Linux-Rechner anmelden. So sollte das sein!

CVS Zugriff
Ich greife nur auf das CVS-Repository meines Linux-Rechners zu und möchte das auch so komfortabel wie möglich haben. Dazu gibt es zwei Möglichkeiten.
Man trägt die CVS-Umgebungsvariablen (CVSROOT und CVS_RSH) in die Datei "~/.profile" ein oder man erstellt die Datei ".MacOSX/environment.plist". Die ".profile"-Variante hat den Nachteil dass diese dann nur innerhalb einer Terminal-Sizung gesetzt sind. Bei der zweiten Variante können auch andere Anwendungen als das Terminal diese benutzen. Ich habe mich für die zweite entschieden. Dabei enthält diese plist-Datei folgenden Inhalt:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CVSROOT</key>
    <string>:ext:hansi@213.55.44.33:/cvs</string>
    <key>CVS_RSH</key>
    <string>/usr/bin/ssh</string>
</dict>
</plist>


Im Terminal kann nun nach einem erfolgreichen "cvs login" das CVS wie gewohnt benutzt werden. So langsam geht es voran!