SSH Key Linux OSX Problem

Mittels einer SSH Key authentication sichert man Verbindungen ab, bzw stellt sicher, dass die Person, die auf einen Server will, auch wirklich die Person ist, die sie vorgibt zu sein. DIeses Verfahren wird mit einem Schlüsselpaar sichergestellt, das aus einem public und einem private key besteht. Auf dem Server liegt dabei das public file, der Bneutzer muss das private file besitzen.

Solch ein Schlüsselpaar kann mittels putty generiert werden. Als Resultat erhällt man eine .ppk file und eine .pub file. Die .pub File, bzw dessen Inhalt kopiert man auf dem Server in die Datei

/home/user/.ssh/authorized_keys

Die ppk File speichert man an einem sicheren Ort. Möchte man nun mittels putty auf den Server zugreifen, kann man im ssh Menü einstellen, welchen key er dazu verwenden soll.

Kopiert man diesen ppk key jedoch auf ein unix system, und versucht dann auf den server mittels:

ssh -i /home/eigenerlocalerBenutzer/.ssh/private.ppk host.com -p 12345 -v

zuzugreifen, bekommt man die folgende Fehlermeldung:

debug1: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>

Das Problem ist das ppk File, welches kein offenes Dateiformat ist. Um den private Key auch unter Linux zu nutzen, muss in puttygen der Schlüssel geöffnet werden und ein Export in das openssh Format vollzogen werden.

Verwendet man nun diesen openssh private Key, funktioniert es ohne Probleme.

Ein weiterer Stolperstein unter Unix Betriebssystemen sind die Zugriffsrechte. Ein server wird einen Key nicht akzeptieren, wenn auf dem Client die ssh Files von jedem änderbar sind. Dies äußert sich in der Fehlermeldung:

Permissions 0777 for ‚.ssh/key.priv‘ are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: .ssh/key.priv

Wobei 777 beispielhaft als negativstes Beispiel aufgeführt ist.

Korrekt müssen die Zugriffsrechte folgendermaßen gesetzt sein:

Der ssh Key und das Verzeichniss muss dem User gehören, der ihn benutzen soll.

chown username /Users/username/.ssh/*

chown username /Users/username/.ssh

Und die Rechte müssen gesetzt sein:

chmod 700 /Users/username/.ssh/

chmod 600 /Users/username/.ssh/*

Damit ist das Zugriffsproblem gelöst.

Um den Zugriff etwas einfacher zu gestaltetn, kann eine config File im ssh Ordner auf dem Client hinterlegt werden mit folgender beispielhafter Konfiguration:

Host host.de
IdentityFile ~/.ssh/key.priv
Port 12345
PreferredAuthentications publickey
Protocol 2

Host entspricht dem Host, auf den sich die Einstellungen beziehen. IndetityFile gibt den Ort des privaten Keys an. Port muss nur angegeben werden, wenn der SSH Server auf einen anderen Port eingestellt ist. PreferredAuthentications publickey stellt die Methode ein und Protocol stellt die verwendete SSH Version ein.

Backup mit wget

Um das Backup einer Webseite per FTP zu holen, bietet sich das Tool wget an. Dieses steht unter der GNU Lizenz. Wget bietet viele Optionen, wie z.B. das Fortsetzen von abgebrochenen Downloads.

Um ein komplettes FTP Dir zu sichern bietet sich folgendes Script an:

SELECT=`date ‚+%w’`
WEEK=`date ‚+%W’`

mkdir /backup/${WEEK}_Backup-${SELECT}
wget -x -r –cache=off -N ftp://USERNAME:PASSWORT@HOST -P /backup/${WEEK}_Backup-${SELECT} -o /backup/logdatei.log

Die einzelnen Parameter kann man mittels man wget nachschlagen.

Truecrypt OSX Unterstützung und Pre-Boot Verschlüsselung

Truecrypt Logo

Am heutigen 6. Februar ist die neue Version von Truecrypt erschienen. Version 5.0 bietet einige grundlegend neue Features. Eigentlich war das Release für den 5. Februar angekündigt, verzögerte sich dann aber um einen Tag.

Wie sehr es erwartet wurde, zeigt sich im Zusammenbruch der Webserver unter dem großen Ansturm den ganzen Tag über. Das runterladen der Software wurde zum Geduldsspiel.

Nun zuerst zu den neuen Features:

Pre-Boot Verschlüsselung ermöglicht die komplette Verschlüsselung der Systemplatte. Bissher war es lediglich möglich, Container zu erstellen oder Partitionen / Festplatten zu verschlüsseln, welche nicht zum booten verwendet werden. Nun ist es möglich, ein System komplett zu verschlüsseln. Es wird beim Booten ein Kennwort eingegeben, welches das weitere Booten ermöglicht.

Die zweite grundlegende Neuerung ist eine grafische Oberfläche unter Linux und erstmals eine OSX-Version, welche sowohl auf Intel, als auch PPC Prozessoren lauffähig ist und auch schon Leopard ready ist. Bissher mussten Anwender unter Linux immer aufwendige Konsoleneingaben machen, um die Truecrypt-Container zu mounten.

Auch die Abhängigkeit vom Kernel gehört der Vergangenheit an, so muss Truecrypt bei einem Kernel Patch nicht unbedingt neu übersetzt werden.

Alles in allem also eine Vielzahl an Neuerungen die das Open Source Programm bereit hält.

Eine komplette Liste aller Änderungen sind hier zu finden:

Truecrypt Versionshistorie