Vor ein paar Tagen gab es einen Artikel darüber wie man den SSH Schlüssel für GitHub unter Ubuntu hinzufügt. Heute gibt es das ganze für Windows. Nach der Installation von TortiseGit starten wir die Git Bash welche im Startmenü zu finden ist. Dort erzeugen wir dann den SSH Schlüssel mittels:
ssh-keygen -t rsa -C ""
Diese Schlüssel fügen wir nun unter GitHub (https://github.com/account/ssh) hinzu. Dazu öffnen wir die Datei id_rsa.pub welche sich im Ordner .ssh befindet. Der .ssh Ordner ist dabei in den Eigenen Dateien zu finden.
Das Problem an dieser Variante ist das damit das auschecken nur in der Git Bash aber nicht direkt in TortiseGit funktioniert, da dieses einen anderes Schlüsselformat nutzt. Um einen Schlüssel im PuTTY Format zu erzeugen muss zuerst die Software PuTTYgen.exe (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) heruntergeladen werden. Nach dem Start der Anwendung sieht das ganze so aus:
Dort drücken wir auf den Button Generate und bewegen die Maus in dem leeren Bereich um Zufallsdaten für die Schlüsselgenerierung zu liefern. Nachdem der Schlüssel erzeugt würde, drücken wir die Buttons Save public key und Save private key um die beiden Schlüssel zu sichern. Der Public Key kann dabei direkt aus der Anwendung in das GitHub Profil kopiert werden.
Beim git clone muss nun nur noch die PuTTY Private Key Datei angeben werden und schon sollte auch hier das auschecken auch hier ohne Probleme funktionieren.
Bei Gerrit handelt es sich um ein Reviewsystem auf Git Basis. Die Software wird unter anderem vom Android Projekt benutzt. Gerrit selbst ist dabei in Java geschrieben. Deshalb sollte dieses natürlich installiert werden:
apt-get install openjdk-6-jre-headless
Nach der Installation von Java legen wir für Gerrit einen extra Benutzer an und wechseln in seinen Kontext:
adduser gerrit
su gerrit
cd ~gerrit
Im Homeverzeichnis des Nutzers angekommen laden wir das Kompilat von Gerrit herunter und starten den Initialisierungsvorgang:
Das „review“ bezeichnet hierbei das Verzeichnis in welchem Gerrit die entsprechenden Dateien anlegt, welche für den Betrieb der Software benötigt werden.
Im ersten Schritt fragt Gerrit ob der Ordner angelegt und initialisiert werden soll, was wir mit Yes beantworten. Alle anderen Meldungen bestätigen wir mit der Entertaste bis wir zum Punkt „Email Delivery“ kommen. Hier geben wir die Daten für einen SMTP Server ein über welchen Gerrit die Mails verschickt. Bei der Frage nach der „Canonical URL“ sollte die URL eingegeben werden unter der das System später erreichbar sein soll z.B. „http://review.invertika.org“.
Nach der Konfiguration startet Gerrit und ist dann per Browser erreichbar. Nachdem man sich einen Account registriert hat ist man automatisch in der Gruppe „Administrators“. Nun sollte man unter Settings -> SSH Public Keys den entsprechenden Schlüssel hinterlegen. Mittels
ssh -p 29418 nutzername@host
z.B.
ssh -p 29418
kann man nun überprüfen ob der Server den Schlüssel akzeptiert. Das ganze sollte dann so aussehen:
**** Welcome to Gerrit Code Review ****
Hi seeseekey, you have successfully connected over SSH.
Unfortunately, interactive shells are disabled.
To clone a hosted Git repository, use:
git clone ssh://:29418/REPOSITORY_NAME.git
Nachdem die grundlegende Konfiguration angelegt ist, kann damit begonnen werden, ein Projekt anzulegen. Dies geschieht allerdings nicht über die Weboberfläche, sondern per SSH:
Damit ist das Projekt dann angelegt. Nun muss noch das bestehende Repository in das Gerrit System überführt werden. Dazu wird zuerst das bereits bestehende Repository geclont:
git clone :Invertika/sandbox.git
Dann pushen wir das Repository in das neue Gerrit Projekt:
muss der entsprechende SSH Schlüssel zu dem Nutzer in Gerrit angetragen werden. Ist die Mailadresse eines Commiters nicht bekannt kann es zu folgendem Fehler kommen:
remote: ERROR: In commit 9228f67aa9113fa73c80f36e81cb5a62bf930c6c
remote: ERROR: committer email address manaserv@herse.(none)
remote: ERROR: does not match your user account.
remote: ERROR:
remote: ERROR: The following addresses are currently registered:
remote: ERROR:
remote: ERROR:
remote: ERROR: To register an email address, please visit:
remote: ERROR: http://review.invertika.org/#settings,contact
Hier hilft es dem Projekt die entsprechenden Rechte zu geben damit die Identität „gefälscht“ werden darf. Ansonsten kann noch der Fehler:
! [remote rejected] HEAD -> master (prohibited by Gerrit)
auftreten. Auch hier hilft die temporäre Anhebung der Rechte für das jeweilige Projekt, da man normalerweise nicht in den Master Branch schreiben darf (was aber beim ersten Anlegen des Projektes gewollt ist).
Nachdem das Projekt angelegt ist kann man es sich mittels:
git clone ssh://:29418/sandbox.git
auf die Festplatte holen. Möchte man Gerrit neustarten, stoppen oder starten so sieht das wie folgt aus:
Wenn man ein Git Repository bei GitHub hat, so ist es doch recht nervig mit diesem per HTTPS zu arbeiten, da man dort für jede Anwendung sein GitHub Passwort eingeben muss. Einfacher ist es wenn man seinen Public SSH Key bei GitHub hinterlegt. Dabei wird hier davon ausgegangen das man noch keinen SSH Schlüssel besitzt. Um sich einen solchen anzulegen wechselt man auf die Konsole und gibt dort:
ssh-keygen -t rsa -C ""
ein, wobei die Mailadresse natürlich zu ersetzen ist. In seinem Homeverzeichnis hat man nun im Ordner .ssh eine Datei namens id_rsa.pub welche man in einem Texteditor öffnen sollte. Nun geht man auf die Seite https://github.com/account/ssh und fügt dort einen neuen Schlüssel (Add another public key) hinzu. Dabei kopiert man die Zeichenkette aus der id_rsa.pub Datei in das Feld Key. Anschließend kann man sich ein Git Repository über SSH mittels:
git clone :Invertika/data.git
holen und (die entsprechenden Rechte vorausgesetzt) problemlos mittels
git push
die getätigten Änderungen wieder in das GitHub Repository bringen, ohne ein Passwort eingeben zu müssen. Unter Mac OS X funktioniert das ganze im übrigen genauso.
Manchmal hat man das Problem das man einen SSH Client benötigt, aber nur einen Browser (in diesem Fall ein Firefox) zur Verfügung hat. Genau für dieses Fall gibt es nun FireSSH. Dabei handelt es sich um einen SSH Client welcher vollständig in Javaskript geschrieben wurde. Zu finden ist FireSSH dabei unter http://firessh.mozdev.org/. Der Client installiert sich als AddOn im Firefox und kann dann nach einem Neustart benutzt werden.
Ein NAS mit einem RAID 5, einem Samba Server und Verschlüsselung auf Basis von Ubuntu wäre doch eine schöne Sache. Um das zu bewerkstelligen lädt man sich den Ubuntu Server unter http://www.ubuntu.com/server herunter, brennt ihn auf eine CD uns startet diese auf dem entsprechenden Rechner.
Dort wählt man dann Deutsch als Sprache aus und geht im Menü auf Ubuntu Server installieren. Nach einigen Fragen bezüglich der Tastatur- und Ländereinstellungen geht es dann weiter mit den Partionseinstellungen. An dieser Stelle erzeugen wir ein neues RAID 5. Dazu wählen wir als Partionsmethode manuell aus und gehen anschließend auf den Menüpunkt Software-RAID konfigurieren. Sollte es bereits Partionen geben so sollten diese vorher gelöscht werden. Sollte hierbei noch ein Software RAID eingerichtet sein, so muss dieses zuerst unter Software-RAID konfigurieren gelöscht werden (MD Gerät löschen).
Nachdem wir Software-RAID konfigurieren ausgewählt haben gehen wir auf MD Gerät erstellen und wählen dort RAID5 aus. Danach wird man nach der Anzahl der aktiven Geräte (sprich Festplatten) gefragt. Hier gibt man die Anzahl der Festplatten an welche man für das RAID verwenden will. Die Festplatten sollten dabei die gleiche Größe aufweisen (sonst wird die kleinste Festplatte als kleinster Nenner angesehen). Nach den aktiven Geräten kann man die Reservegeräte (Hot Spare) definieren und anschließend angeben welche Festplatten in das RAID genommen werden sollen.
Nachdem man das ganze bestätigt hat und die RAID Konfigurationsseite mittels Fertigstellen verlassen hat, definiert man noch den Einhängepunkt des RAID5 Gerätes (/) sowie das Dateisystem (ext4) und beendet die Partitionierung. Zusätzlich kann man noch eine Swap Partion anlegen, muss dies aber nicht tun (je nachdem wie viel Arbeitsspeicher in dem Gerät steckt).
Während der Installation wird man dann noch gefragt ob man Mail konfigurieren möchte. Dort wählt man nur lokal aus und fährt mit der Installation fort bis man seinen Nutzernamen und sein Passwort vergeben muss. Auf die Frage ob der persönliche Ordner verschlüsselt werden soll antwortet man mit Ja. Dann fährt man mit der Installation fort bis man gefragt wird ob man bestimmte Pakete vorinstallieren möchte. Hier wählt man OpenSSH server und bestätigt das ganze.
Nach der Installation erstellen wir mittels mkdir /home/seeseekey/share den Ordner in dem später unserer Daten liegen und installieren mittels:
sudo apt-get install mc htop samba swat
den Samba Server (sowie das Webinterface), htop und den Midnight Commander (letztere nur der Bequemlichkeit halber). Mittels
sudo smbpasswd -a seeseekey
erzeugen wir einen neuen Sambabenutzer. Dabei ist zu beachten das der betreffende Sambanutzer im System schon als Benutzer existieren muss. Am besten legt man solche Nutzer mittels
an. Diese Nutzer haben dann kein Homeverzeichnis und können sich auch nicht auf dem System einloggen. Nun müssen wir noch einige Dinge an den Dateirechten ändern damit Swat die Samba Config schreiben kann. Dies geschieht auf der Konsole mittels
Anschließend starten wir Swat mittels sudo /etc/init.d/openbsd-inetd restart neu. Danach können wir uns mit einem Webbrowser anmelden (http://“IP Adresse“:901 z.B. 192.168.1.15:901). Als Nutzername und Passwort dient dabei der bei der Installation angelegte Benutzer.
Nachdem wir uns verbunden haben können wir unter Globals einige Dinge einstellen z.B. den Namen der Arbeitsgruppe (workgroup). Unter Shares legen wir eine Freigabe an. In diesem Beispiel nennen wir die Freigabe Daten und klicken auf erstellen. In dem sich öffnenden Optionen setzen wir folgende Parameter:
path -> /home/seeseekey/share/
admin users -> seeseekey
readyonly -> No
available -> Yes
und klicken anschließend auf Änderungen speichern.
Nun haben wir ein System welches ein RAID 5 kombiniert mit einem Sambaserver und einer Verschlüsselung bereitstellt. Wenn man den Server startet muss man den Nutzernamen und das Passwort eingeben, damit das entsprechende Nutzerverzeichnis in welchem die Freigabe liegt entschlüsselt wird. Das kann man natürlich auch per SSH machen, allerdings ist die Sitzung (und somit die SMB Freigabe) nur so lange verfügbar wie die SSH Verbindung steht. Eine Anmeldung direkt am NAS (es reicht ja wenn eine Tastatur angeschlossen ist) ist also vorzuziehen.
Ein kleiner Hinweis noch am Rande: Mittels cat /proc/mdstat kann man nach der Anmeldung Informationen über das RAID abfragen.