Artikel-Schlagworte: „ssh“

Aptana Eclipse SFTP remote arbeiten

Dienstag, 9. Dezember 2008

In einem älteren Artikel wurde beschrieben, wie Aptana, das frei Entwicklungswerkzeug auf Eclipse Basis genutzt werden kann, um remote auf einem FTP Server zu arbeiten.

Im täglichen Arbeitsablauf hat sich dieses Tool mittlerweile bewährt, doch Stillstand ist ja bekanntlich Rückschritt. Die konsequente Weiterentwicklung ist Verschlüsselung. Wie bekommt man diese Daten am einfachsten verschlüsselt. Die Lösung ist simpel: SFTP (SSH File Transfer Protocol).

Dieses wird mit SSH mitgeliefert und ist somit auf jedem Webserver mit SSH Zugang verfügbar. Da 99,9% aller Webserver, Rootserver und virtuellen Server über einen solchen Zugang verfügen ist die Verbreitung gewährleistet.

Technisch basiert es auf SCP, dem Secure Copy Protokol.

Um in Aptana SFTP nutzen zu können, muss ein Plugin installiert werden. Dieses ist über: http://aptana.com/plugins/ verfügbar, wird aktuell jedoch nicht unterstützt. Die Installation wird über Help -> Software Updates vorgenommen.

Danach ist SFTP als neue Möglichkeit im File Browser verfügbar. Dort kann dann eine neue Verbindung angelegt werden. Natürlich muss der SSH Nutzer Zugriff auf das public Verzeichnis des Webservers haben, diese Thematik muss aber gesondert bedacht werden.

SSH Key Linux OSX Problem

Donnerstag, 4. Dezember 2008

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.

Svn über SSH Tunnel sichere Versionierung

Freitag, 18. Juli 2008

 subclipse

Wer an einem etwas größeren Softwareprojekt arbeitet, an dem mehrere Entwickler beteiligt sind kommt an einer Versionierung nicht vorbei.

Besonders beliebt ist subversion (svn) welches mittels verschiedenen Freewaretools zugreifbar ist. Auch für die freie Entwicklungsplattform Eclipse gibt es Plugins wie z.b. subclipse.

Wenn das svn repository aufgesetzt wird sind folgende Schritte notwendig:

  1. SVN installieren(Debian Linux)
    apt-get install subversion
  2. Repository anlegen
    1. mkdir /srv/svn/ (Verzeichniss anlegen)
    2. svnadmin create /srv/svn/ (Subversion Infos hinterlegen etc.)
  3.  User anlegen
    1. adduser (siehe entsprechende Man Page)
    2. addgroup subgroup (Gruppe hinzufügen)
    3. chgrp subgroup o-rwx /srv/svn/ (Ordner der Gruppe zuordnen)
    4. chmod -R g+rw /srv/svn (Gruppe darf lesen schreiben)
    5. adduser neuerBenutzer subgrou (User der Gruppehinzufügen)
  4. Anlegen der Verzeichnisse im Verzeichniss:
    1. mkdir /srv/svn/test
  5. Starten des Servers
    1. srvserve -t (damit wird der svn über ssh getunnelt)
  6. Ab jetzt wird vom Client gearbeitet
    1. svn import Projekt svn+ssh://rechneradresse/srv/svn/test -m “Beschreibung der Änderungen” (dadurch werden die ersten Files hinzugefügt.

    2. Nun kann im gewünschten Tool wie z.B. Subclipse die Adresse eingepflegt werden.