Application:OpenSSH-DE

From WebOS Internals
Revision as of 11:40, 25 September 2011 by DiplPhy (talk | contribs)
Jump to navigation Jump to search

Einführung

OpenSSH ist eine FREIE Version des SSH Verbindungswerkzeugs, welches von technisch-interessierten Nutzer des Internets verwendet wird.

OpenSSH ist als Installation mittels Preware verfügbar. Tippe einfach "OpenSSH" in Preware Hauptbildschirm um das Paket zu suchen und zu installieren.

Bitte besuche OpenSSH Home Page und ließ die OpenSSH Bedienungsseite (engl) bevor du dieses Paket benutzt.

Es gibt zwei Wege um die Schlüssel für OpenSSH (weiter unten auf dieser Seite) zu erzeugen. Die PC Variante benötigt einen Nutzerkontoname und ein Passwort um ZUgang mittels Putty zu erlangen. Ich vermute es ist nicht möglich diese Schritte auszuführen ohne ein Nutzerkonto einzurichten. Ich finde die Anleitung für die webOS Variante ist wesentlich einfacher zu befolgen. Des Weiteren glaube ich, dass wenn Linux, vor allem Linux unter webOS, neu für dich ist, die webOS Variante die bessere Methode ist. Ich empfehle die webOS Variante auch dann, wenn bei der PC Variante Probleme auftreten oder du die Anleitung zu umfangreich findest.

Schlüssel erzeugen

Mac OSX Variante (getestet mit Lion)

Starte eine neue Terminal Sitzung unter Mac OS und su nach root. Wenn du root unter mac bist:

/opt/bin/ssh-keygen

Akzeptiere den Standard Dateiname mittels Enter. Gib eine Passphrase für deine private Schlüsseldatei ein. Du wirst die Passphrase später benötigen, als merke sie dir. Nach dem die Schlüsseldatei erzeugt wurde musst du sie auf dein webOS Gerät kopieren. Schließe ein TouchPad mittels USB-Kabel an und kopiere die Datei

 cp /var/root/.ssh/id_rsa.pub /Volumes/HP\ TouchPad/

Trenne das TouchPad und starte ein Terminal auf dem TouchPad. Im Terminal musst du die Datei an die richtige Stelle verschieben und die Berechtigungen entsprechend setzen.

cat /media/internal/id_rsa.pub >> /home/root/.ssh/authorized_keys
rm /media/internal/id_rsa.pub

Dieser Schritt ist nötig um die Schlüssel laden zu können.

chmod 700 ~/.ssh

Es ist nötig das Upstart Script zu modifizieren. Wie bei 08/21/11, gibt es einige Probleme, dass der Start nicht funktioniert und OpenSSH nicht lädt.

vi /var/palm/event.d/mobi.optware.openssh

Kommentiere die existierenden Start und Stop Kommandos aus und ergänze den neuen Code unterhalb. Noch wärend das geschrieben wird, ist nicht klar, welche Umstände bei Starten der org.webosinternals.optware Abhängigkeiten hierzu führen. Fühle dich frei das Skript zu verbessern und mit mehreren Details auszustatten.

#start on stopped finish and started org.webosinternals.optware
#stop on runlevel [!2]

start on stopped finish
# and started org.webosinternals.optware

# Stop when the Software Update tool is about to install an update.
# upstart restarts the job when installation is complete.
stop on started start_update

Verlasse vi und speichere

:qw!

Du kannst testen ob sshd statet und schauen ob Schlüsselfehler auftreten in dem du folgendes schreibst:

/opt/sbin/sshd -D

Wenn du einen Fehler "Permissions 0777 for '/opt/etc/openssh/ssh_host_rsa_key' are too open." erhälst, dann solltest du die Berechtigungen für diese Datei auf 600 ändern:

chmod 600 /opt/etc/openssh/ssh_host_rsa_key

und 700 für das Hauptverzeichnis

chmod 700 /opt/etc/openssh

Wenn du eine Nachicht erhälst, opt/sbin/sshd -D Could not load host key: /opt/etc/openssh/ssh_host_ecdsa_key, dann erzeuge den Schlüssel manuell:

/opt/bin/ssh-keygen -t ecdsa -f /opt/etc/openssh/ssh_host_ecdsa_key -N ''
chmod 600 /opt/etc/openssh/ssh_host_ecdsa_key

Wenn das erledigt ist, sollte sshd starten:

start mobi.optware.openssh

Teste die Verbindung ferngesteuert von deinem Mac(die -vvv Option ist für Debug Nachrichten, was du entfernen kannst wenn alles geht):

su
ssh <touchpad ip> -vvv

Nutze das Passwort, welches du zum Erzeugen des Schlüssels zu Anfang verwendet hast.

Wenn bei dir andere Probleme auftreten, schaue in die Log-Datei auf deinem TouchPad .

grep ssh /var/log/messages

Prüfe ob der Service läuft:

ps aux | grep sshd
status mobi.optware.openssh

Versuche dein TouchPad lokal zu verbinden:

ssh localhost

Windows PC Variante

Wenn du dein webOS Gerät von einem Windows Host Computer aus verbinden willst ließ bitte Secure Linux/UNIX access with PuTTY and OpenSSH Tech Tip (engl.) und folge den dort gegebenen Instruktionen zur Erzeugung der SSH Schlüssel. Im Abschnitt "Install public Key on Linux system" musst du den öffentlichen Schlüssel (public key) in die Datei /home/root/.ssh/authorized_keys eintragen.

Optware installiert openssh unter /opt, daher solltest du alle Referenzen zu /bin, /sbin, und /etc in der OpenSSH Dokumentation mit /pt/bin, /opt/sbin und /opt/etc ersetzen.

ExpanDrive (SftpDrive) einstellen

Achtung: Diese Anleitung benötigt ein wie auch immer gearteten Zugang zum Dateisystem des webOS Gerätes

  • Öffne ExpanDrive
  • Klicke auf "New drive..."
  • Tippe einen Namen in die "Drive Name" Eingabezeile.
  • Tippe die IP Adresse deines Gerätes in die "Server" Eingabezeile.
  • Schreibe "root" in die "Username" Zeile.
  • Wähle "Use a public kex to log in..." aus der "Authentication" Auswahlliste.
  • Klicke auf "Create New Key Pair".
  • Wähle "RSA (ssh-rsa" aus der "Key type" Auswahlliste.
  • Klicke auf "Create Key Pairs".
  • Klicke auf "OK".
  • Klicke auf "Export current Key Pair".
  • Klicke jeweils auf "Export Private Key" und "Export Public Key" und speichere die Datei irgendwo (merke dir aber wo du sie speicherst) und klicke auf "OK".
  • Öffne die .pub Datei die du gespeichert hast in einen Nurtext Editior (Windows Notepad).
  • Kopiere den Inhalt der kompletten Datei und füge den Inhalt in die nächste Zeile von "/var/home/root/.ssh/authorized_keys" (auf dem Gerät) ein und speichere die Datei.
  • Gehe zurück zu ExpanDrice und klicke auf "OK" auf dem noch geöffneten "Public Key Authentication Properties" Dialog.
  • Wähle "Show the entire server" aus der "Directory" Auswahlliste
  • Klicke auf "Connect" um zu verbinden und speichere die Konfiguration ab.
  • Nachdem die Verbindung aufgebaut ist erscheint ein neues Explorer Fenster und wird dich in das Verzeichnis "%DriveLetter%:\var\home\root" führen.


webOS Variante

Starte Preware und installiere http://www.webos-internals.org/wiki/Application:Terminal Terminal] wenn du das bis her nicht getan hast. Sollte Terminal nicht verfügbar sein, oder nicht funktionieren nutze [Application:Xecutah Xecutah] und XTerm um mittels XTerm ein Terminal auf deinem webOS Gerät zu öffnen. Das Terminal wird genutzt um die SSH Schlüssel direkt auf deinem webOS Gerät zu erzeugen, welche für die Benutzung von OpenSSH benötigt wird. Wenn Terminal installiert ist starte es und führe die folgenden Schritte aus:

wechsle in das root Verzeichnis:

 cd /

Dann tippe

 /opt/bin/ssh-keygen

um den privaten und öffentlichen Schlüssel zu erzeugen. Nach kurzer Zeit (ungefähr eine Minute) musst du durch einen Druck auf die Entertaste den Standard Dateinamen akzeptieren. Jetzt wirst du aufgefordert die Passphrase für den privaten Schlüssel einzugeben. Du musst dies Passphrase später nutzen, daher merke sie dir. Wenn die Schlüsseldateien erzeugt sind musst du folgendes eintippen:

 mv /home/root/.ssh/id_rsa.pub /home/root/.ssh/authorized_keys

Damit wird der öffentliche Schlüssel unter /home/root/.ssh/authorized_keys eingetragen.

Jetzt muss der geheime Schlüssel auf den PC übertragen werden, mit welchem du dich mit deinem webOS Gerät verbinden möchtest. Zuerst muss die Schlüsseldatei in ein Verzeichnis kopiert werden, welche vom PC mittels USB-Laufwerk-Modus erreicht werden kann. Um dies zu machen schreibe:

 cp /home/root/.ssh/id_rsa /media/internal/id_rsa

Jetzt haben wir alle Arbeiten mit dem Terminal abgeschlossen und du kannst das Programm schließen in dem du es nach oben schiebst.Als nächstes muss du dein webOS Gerät mit dem PC verbinden. Nutze dazu das USB-Kabel und drücke auf USB Laufwerks Modus. Wenn der Laufwerksmodus aktiviert ist, musst du das Laufwerk öffnen, welches mit deinem Gerät verknüpft ist (z.B. "Palm Pre (E:)"). Kopiere die "id_rsa" Datei auf deinen PC in ein Verzeichnis das du dir merken kannst (z.B. "c:\"). Du kannst auf die Datei auch mit der Endung .doc versehen und sie dir per E-Mail schicken. Dazu musst du wie folgt verfahren. Nachdem die Datei auf deinem PC ist, muss du die Endung .doc wieder entfernen (id_rsa).

 cp /home/root/.ssh/id_rsa /media/internal/id_rsa.doc


Mit dem webOS Gerät verbinden

PuTTY verwenden

Solltest du den webOS Software Development Kit (SDK) installiert haben, befindet sich PuTTY bereits auf deinem Computer (unter \SDK\bin im Installationsverzeichnis des SDK). Anderenfalls kannst du PuTTY hier herunterladen. Des Weiteren benötigst du PUTTYgen. Solltest du winSCP nutzen ist PuTTYgen schon installiert (und kann im Startmenü unter winSCP>Schlüsselwerkzeuge gestartet werden). Anderenfalls kannst du PuTTYgen auf der gleichen Seite herunterladen wie PuTTY. Solltest du PuTTY zum ersten mal benutze oder deine Einstellungen überprüfen wollen, dann nutze die folgenden Schritt-für-Schritt Anleitung:

  • Starte PuTTY.
  • Gib die IP-Adresse deines webOS Gerätes ein. Diese kannst du unter anderem mit dem Programm Nodoze herausfinden. Nodoze kannst du über Preware installieren.
  • Gib als Portnummer die 22 ein.
  • Setzen den Auswahlknopf auf SSH.
  • Wähle links unter "Connection" den Eintrag "Data" aus.
  • Gib root als auto-login Benutzernamen ein.
  • Wähle links unter "Connection" unter dem Menü "Auth" den Eintrag SSH.
  • Laß PuTTY geöffnet während du die nächsten Schritte ausführst.
    • Starte PuTTYgen.
    • Wähle im Konvertierungsmenü den Eintrag Schlüssel importieren.
    • Wähle die id_rsa Datei die du von deinem webOS Gerät auf den Computer kopiert hast und klicke auf öffnen.
    • Gib die Passphrase ein, die du währen der Schlüsselerzeugung eingegeben hast.
    • Du wirst nun alle möglichen Informationen in dem Fenster sehen.
    • Klicke auf privaten Schlüssel speichern (save private key).
    • Gib einen Namen für die Datei an, in der der private Schlüssel gespeichert werden soll (die Endung PPK musst du nicht eingeben). Speichere die Datei dort wo du sie wieder findest.
    • Schließe PuTTYgen und gehe zurück zu PuTTY, welches noch geöffnet sein sollte.
  • Klicke auf den Durchsuchen Button für den privaten Schlüssel.
  • Wähle die PPK Datei aus die du mit PuTTYgen erzeugt hast und klicke auf öffnen.
  • Wähle links Sitzung aus.
  • Gib einen Namen für diese Sitzung ein und klicke auf speichern.
    • Dies ermöglicht es dir die Sitzung zukünftig zu nutzen ohne die Daten jedes mal eingeben zu müssen .
  • Stelle sicher, dass das WLAN an deinen webOS Gerät eingeschaltet ist.
    • Du kannst Nodoze aus Preware installieren um sicherzustellen, dass das WLAN an bleibt und das webOS Gerät nicht in den Schlafmodus geht.
  • Klicke auf Öffnen in PuTTY um dich zu verbinden. Wenn alles richtig konfiguriert ist solltest du die folgenden Abgaben in einem Terminal Fenster auf deinem PC sehen:
  
Using username "root".  
Authenticating with public key "imported-openssh-key"  
Passphrase for key "imported-openssh-key":
  • Gib die Passphrase ein die du bei der Schlüsselerzeugung gewählt hast. Jetzt solltest du folgendes sehen:
  
Root@palm-webos-device:/var/home/root#

Glückwunsch jetzt hast du Zugang zu dem Linux auf deinem webOS Gerät. Jetzt kannst du die Kommandozeile für alles verwenden was man mit der Kommandozeile machen kann. Es gibt vieles was man damit machen kann. Wenn du es noch nicht getan hast kannst du dich auf der webOS-Internals Seite umschauen was man alles mit der Kommandozeile machen kann. Du kannst auch winSCP verwenden um ein dem Windows Explorer ähnliches Fenster zu erhalten, damit du einfacher mit Dateien umgehen kannst. Wie das funktioniert siehst du weiter unten auf dieser Seite.

FileZilla SFTP Client verwenden

Stelle sicher das der OpenSSH SFTP Server aus Preware bei dir installiert ist.

Für eine SFTP Verbindung mittels SSH2 nutzt FileZilla das exzellente Programm PuTTY. Um FileZilla den Umgang mit RSA/DSA Schlüsseln zu ermöglichen, musst du ein weiteres Programm von der PuTTY Seite herunterladen: Pageant.

Bevor du FileZilla nutzen kannst musst du den erzeugten Schlüssel in das PuTTY PPK Format konvertieren. Dies ist im oberen Abschnitt (Benutzung von PuTTY) erklärt. Starte jetzt Pageant. In der Taskleiste erscheint das Pageant Symbol. Klicke mit der linken Maustaste auf das Symbol und klicke auf "Add Key" und wähle deine Schlüsseldatei (PPK) aus. Gib deine Passphrase ein und du bis fertig.

Jetzt starte einfach FileZilla und verbinde dich mit dem SFTP Server auf deinem webOS Gerät mittels SSH mit dem Namen root und einem leeren Passwort.Vergiß nicht Pageant zu schließen wenn du fertig bist.

Wie du vielleicht weißt oder auch nicht, kann FileZilla auch von portablen Medien (USB Stick u.ä.) verwendet werden und so an jedem beliebigen Computer verwendet werden. Das gleiche gilt auch für Pageant. Wenn du also FileZilla, Pageant und deine Schlüsseldatei auf einen USB-Stick kopierst kannst du von jedem Windows PC aus Zugriff auf dein Server auf deinem webOS Gerät haben.

FileZilla alternative Variante mit ungeschütztem Schlüssel

Im "Edit - Setting" Menü von FileZilla kann man unter "Connection - SFTP" kannst du einen privaten Schlüssel hinterlegen (Add key file...). Mit diesem Schlüssel ist es FileZilla möglich den interaktiven Anmeldemodus zu nutzen (Interactive Logontype). Dazu muss die PPK Datei aber in eine ungeschützte PPK Datei konvertiert werden, da die originale Datei mit einem Passwort geschützt ist (FileZilla ka n diese Konvertierung durchführen, wenn ie PPK Datei importiert wird). Bei der Version 3.3.2.1 von FileZilla ist eine passwortgeschützte Datei an dieser Stelle nicht möglich.

winSCP verwenden

  • Starte winSCP.
  • Gib die IP-Adresse deines webOS Gerätes ein. Diese kannst du unter anderem mit dem Programm Nodoze herausfinden. Nodoze kannst du über Preware installieren.
  • Gib als Portnummer die 22 ein.
  • Gib als Benutzername "root" ein.
  • Gib root als auto-login Benutzernamen ein.
  • Laß winSCP geöffnet während du die nächsten Schritte ausführst.
    • Starte PuTTYgen (Startmenü > winSCP > Schlüsselwerkzeuge > PuTTYgen).
    • Wähle im Konvertierungsmenü den Eintrag "Schlüssel importieren".
    • Wähle die id_rsa Datei die du von deinem webOS Gerät auf den Computer kopiert hast und klicke auf öffnen.
    • Gib die Passphrase ein, die du währen der Schlüsselerzeugung eingegeben hast.
    • Du wirst nun alle möglichen Informationen in dem Fenster sehen.
    • Klicke auf privaten Schlüssel speichern (save private key).
    • Gib einen Namen für die Datei an, in der der private Schlüssel gespeichert werden soll (die Endung PPK musst du nicht eingeben). Speichere die Datei dort wo du sie wieder findest.
    • Schließe PuTTYgen und gehe zurück zu winSCP welches noch geöffnet sein sollte.
  • Klicke auf den "..." Button damit sich der "Schlüsseldatei.Öffnen" Dialog öffnet.
  • Wähle die PPK Datei aus die du mit PuTTYgen erzeugt hast.
  • Klicke auf den "Speichern" Button und gibt einen Namen für diese Konfigurationseinstellung ein.
    • Das ermöglicht die diese Einstellungen beim nächsten mal zu laden und nicht erneut eingeben zu müssen.
  • Du solltest jetzt die Sitzungsübersicht sehen mit der Sitzung die du gerade gespeichert hast.
  • Prüfe ob das WLAN an deinem webOS Gerät eingeschaltet ist. Du kannst Nodoze aus Preware installieren um sicher zustellen, dass das WLAN an deinem webOS Gerät eingeschlaltet bleibt und das webOS Gerät nicht in den Ruhemodus wechselt.
  • Wähle die Sitzung aus die du gerade gespeichert hast und klicke auf "Verbinden".
  • Gib die Passphrase ein, die du während der Erzeugung des Schlüssels gewählt hast. Wenn alles richtig eingestellt ist solltest du eine Liste mit Verzeichnissen sehen, ähnlich einem Explorer Fenster.

Glückwunsch du hast jetzt Zugang zu dem Linux auf deinem webOS Gerät. Du kannst jetzt Dateien kopiere , löschen und verschieben wie in Windows. Du kannst auch Dateien verändern. Einige Dateiaktionen benötigen den read write Modus ("mount -o remount,rw" in PuTTY oder einem Terminal eingeben; "mount -o remount,ro" um wieder in den read only Modus zu wechseln).

Problemlösung/Tipps

Ein SSH Terminal verwenden

Lege deine private Schlüsseldatei in ein Standartverzeichnis (~/.ssh/id_rsaE) auf dem Rechner ab von welchem du dich auf dein webOS Gerät einloggen willst. Du kannst SSH auch den Ort des Schlüssels mit dem -i switch bekannt geben, dass geht wie folgt:

user@host:~$ ssh -i /path/to/privyge/key remoteuser@remotehost

Nicht root Passwortzugang mittels Kommandozeile ermöglichen

Nutze Terminal, einen SSH Zugang oder Novaterm um Zugang zur Kommandozeile zu erhalten. Tippe folgende Befehle um den Schreibzugriff auf das Systemlaufwerk / zu erhalten:

mount -o remount,rw

Verändere die Datei mobi.optware.openssh im Verzeichnis /etc/event.d/ odr /var/palm/event.d/ (je nachdem welche OpenSSH Version du verwendest. Suche die Ziel mit "PasswordAuthentification no" und ändere diese in "PasswordAuthentification yes". Die Zeile sollte jetzt wie folgt aussehen:

exec /opt/sbin/sshd -D -p 22 -o "PasswordAuthentication yes" -o "PermitRootLogin without-password" 

Speichere und beende mit ZZ oder:wq dann starte den OPENSSH Service wie folgt neu:

stop mobi.optware.openssh  start mobi.optware.openssh  

Wenn du fertig bist stelle sicher, dass dein Systemlaufwerk wieder auf read only gestellt ist (mount -o remount,ro). Ändere nichts anderes. Wenn du einen Nutzernamen mit Passwort erstellt hast, solltest du dich mit dem Password anmelden können. Nach jeden webOS Update musst du alle anderen Nutzerkonten außer root mit adduser <Nutzername> neu anlegen und das Passwort neu vergeben. Achtung, es wird empfohlen für jeden Nutzer ein SSH Schlüssel zu erzeugen anstelle die Anmeldung mit Name und Passwort zu nutzen. Zur Erzeugung eines Schlüssels kann die Anleitung weiter oben benutzt werden.

SSH über das Mobilfunknetz

Nutze Terminal, einen SSH Zugang oder Novaterm um Zugang zur Kommandozeile zu erhalten. Tippe die folgenden Befehle als root um Schreibzugriff auf das Systemlaufwerk / zu ermöglichen:

mount -o remount,rw

Verändere die Datei mobi.optware.openssh im Verzeichnis /etc/event.d/ odr /var/palm/event.d/ (je nachdem welche OpenSSH Version du verwendest. Suche die Zeile mit der Einschränkung „-i eth0“ und entferne diese. Zum Beispiel wird aus:

/usr/sbin/iptables -D INPUT -i eth0 -p tcp --dport 222 -j ACCEPT
/bin/true   /usr/sbin/iptables -I INPUT -i eth0 -p tcp --dport 222 -j ACCEPT 

wird

/usr/sbin/iptables -D INPUT -p tcp --dport 222 -j ACCEPT 
/bin/true   /usr/sbin/iptables -I INPUT -p tcp --dport 222 -j ACCEPT

Speichere und beende mit ZZ oder:wq dann starte den openssh service wie folgt neu:

stop mobi.optware.openssh  start mobi.optware.openssh  

Wenn du fertig bist stelle sicher, dass dein Systemlaufwerk wieder auf read only gestellt ist (mount -o remount,ro).