macfidelity

|

rethinking the think-different thing

mac | SSH unter Mac OS X 10.6

January 22nd, 2010 at 16:37

Heute mal ein Gastbeitrag – diesmal von Florian/der_flo – der sich mit dem Thema SSH (unter Mac OS X 10.6) beschäftigt hat.

Solltet ihr ebenfalls Interesse haben hier mal zu Wort zu kommen – werft einfach einen Blick auf die Blog-Seite “mitmachen“.

Danke @Florian für diesen Beitrag.


Vorwort

Änderung der Standarteinstellungen können gefährlich für Stabilität, Sicherheit und Nutzerkomfort sein. Ich übernehme keine Haftung für eventuell auftretende Schäden!

1 SSH mit Zertifikaten

1.1 Zertifikate erstellen

Auf dem Rechner, von dem wir uns mit SSH auf einen anderen Rechner verbinden wollen müssen zuerst die Zertifikate erstellt werden.

$ ssh-keygen -t rsa

Dieser Befehl erstellt unter ~/.ssh/ zwei neue Dateien. id_rsa, dies ist der Private-Key, und den Public-Key id_rsa.pub. Da der Verlust dieser beiden Dateien zu sehr großen Problemen führen kann, empfehle ich diese zu sichern. Vor allem der Private-Key ist vor Zugriff Dritter zu sichern!

1.2 Einrichten der Authentisierung mit Zertifikaten

Als nächsten Schritt kopieren wir den Public-Key auf den Zielrechner per SSH.

$ scp id_rsa.pub Nutzer@Zielmaschine:~/.ssh/

Darauf loggen wir uns auf der Zielmaschine ein und müssen den Public-Key mit der Zielmaschine bekannt machen.

$ cat id_rsa.pub » .ssh/authorized_keys

Nun ist der Rechner, auf dem man die Zertifikate erstellt hat, auf der Zielmaschine bekannt. id_rsa.pub kann nun auf der Zielmaschine gelöscht werden. Anstelle einer Passwortabfrage wird nun das Zertifikat überprüft und dementsprechend Zugriff auf der Zielmaschine gewährt oder verwährt.

$ ssh Zielmaschine

2 SSH-Schnellzugriff

Wenn man öfters mit SSH zu tun hat, dann noch mit vielen Zielmaschienen und keinen Standarteinstellungen, kann ein SSH-Befehl schnell sehr lang werden.

$ ssh -26 192.168.2.1 -l admin -p 1234

Natürlich kann man dieses Beispiel noch ausbauen. Eine Möglichkeit diese langen Eingaben zu umgehen bieten natürlich aliases, allerdings geht es auch direkt über SSH. Im Folgendem werde ich diese Möglichkeit beschreiben. Zuerst legen wir unter ~/.ssh/ eine neue Datei an.

$ touch config

Diese Datei öffnen wir nun mit einem Editor und geben unsere gewünschte Konfiguration ein.

Host myExample
User admin
Port 1234
HostName 192.168.2.1

Host myExample2
User nutzer
HostName zielrechner

Nun ersetzt ein kurzer SSH-Befehl eine lange Befehlsfolge.

$ ssh myExample

3 Weiterführende Links

Tags: , , , , , ,

14 Responses to “mac | SSH unter Mac OS X 10.6”

  1. fidel Says:

    Notiz am Rande – kein reines Mac OS X Thema – ich habe es trotzdem mal in dieser Kategorie gelassen.

  2. Jann Says:

    Bei “2 SSH-Schnellzugriff” würde ich “admin” mit “Nutzer” tauschen damit es hier zum ganzem HowTo passt und als Info: “-p 1234″ ist der SSH Port ung das geht nur wenn sshd vom host auf einem anderen port (1234) lauscht… nicht das hier jemand ungeprüft copy & paste macht und sich noch wundert das nichts geht ;)

  3. Toasti Says:

    Ich persönlich hab mir dafür einfach einen Alias in die .bash gelegt.
    alias root=”ssh root@00.000.00.0″ (0 means not typical Macfidelity’s 0 *g*)

    Was mich (rein aus Interesse) mal jucken würde wäre, wie ich dem Alias dabei noch gleich mein Passwort mit jagen könnte. Evtl. helfen ja mir da ja mal die Links weiter. Ob man das überhaupt machen sollte steht allerdings sowieso auf einem anderen Blatt.

  4. makomi Says:

    @Toasti: Das Passwort kann man nicht mitschicken – selbst ein Pipen klappt nicht: “Pseudo-terminal will not be allocated because stdin is not a terminal.”

    Genau deswegen hat man die Geschichte mit den ssh-Keys erfunden :)

  5. makomi Says:

    Desweiteren möchte ich total uneigennützig auf folgenden Link hinweisen: http://controlc.de/2009/10/20/net-ssh-mit-tunneln-nutzen/

    Hier kann man erfahren, wie man über SSH getunntelt auf Dienste zugreifen kann.

  6. der_flo Says:

    @ Jann: stimmt – den Host habe ich in dieser Beschreibung total ausgelassen. Um es “Angreifern” etwas interessanter zu machen, lege ich meine SSH-Zugriffsports immer auf andere Ports.

    Die Host-Konfiguration findet man unter /etc/ssh/sshd_config.
    Hier kann man auch einstellen, ob man Passwörter zulässt und/oder der Zugriff nur über Zertifikate erfolgt.

    Zertifikate haben den großen Vorteil, dass sie “sicherer” sind und meist länger als Passwörter. Allerdings haben Zertifikate auch den Nachteil, dass wenn sie in die Hände anderer kommen, bösen Schaden anrichten können – wobei ich hier noch erwähnen muss, dass man auch Zertifikate mit Passwörtern schützen kann (direkt bei der Generierung mit ssh-keygen wird danach gefragt).

    schönes Wochenende! :-)

    @ fidel: Danke :-)

  7. Michael G. Says:

    Ich bevorzuge diesen Befehl um ein ssh Key zu erstellen:
    ssh-keygen -trsa -b4096 -CKommentar

  8. Dominik Says:

    Hmm, kann mir Neuling jemand mit nem etwas komplizierterem Problem helfen?
    Ich hab ein NAS (Thecus N5200) und auf dem hab ich zwei spezielle User, reboot und shutdown. Die sind nur dazu da, daß wenn man sich über ssh bei denen einloggt, die das NAS neustarten oder runterfahren. Bisher verwende ich ein Applescript mit der delay Funktion um das Passwort “nachzuschieben”, nur klappt das halt nicht immer, vor allem, wenn das NAS sich im “Halbschlaf” befindet und deswegen länger braucht um zu reagieren.
    Deswegen würde ich gerne das mit dem ssh-key regeln, kann nur leider nicht die Anleitung befolgen, da das NAS gleich die Funktion (reboot oder shutdown) ausführt, wenn ich mich einlogge.
    Einen User mit root Rechten hab ich auch, kenn mich aber nicht soweit aus, daß ich die anderen zwei User vom root user einrichten kann.
    Könnt ihr mir da helfen?

  9. fidel Says:

    @Dominik

    ich kenne diesen NAS-Typ nicht … aber wenn du User mit SSH Rechten anlegen kannst – dann würd ich mich erstmal davon trennen unterschiedliche User für einzelne Funktionen zu verwenden -> das sollte doch 1:1 auch alles mit einem Userkonto funktionieren – zumindest wenn dieser User dann wieder die entsprechende Rechte hat.

    An deiner Stelle würde ich erstmal prinzipiell das Userszenario klären …und mich dann langsam dem Thema SSH-Keys nähern.
    Anschließend könntest du dir fuer Mac OS X halt kleine Shell-/AppleScripte verwenden um einzelne Fälle abzudecken.

    Frag einfach nochmal nach wenn du das Userszenarion mal besser überblicken kannst.

    Gruss
    fidel

  10. Dominik Says:

    Ist nicht ganz so einfach mit dem NAS :)
    Um überhaupt auf dem Gerät “herum zu turnen” muss man erst mal so genannte Module über das Web interface installieren. Ein Module für ssh, eins für den User sys, der root Rechte hat, und ein Modul, daß die User reboot und shutdown anlegt, die beim einloggen gleich das jeweils zu ihrem Namen passende Skript ausführen.
    Als ich noch Windows benutzte war das sehr geschickt, denn da kann man das passwort gleich mitschicken (zumindest mit PuTTY) und so war das neustarten/runterfahren recht einfach für Laien wie mich.
    Deswegen würde ich gerne dies so weiter benützen, weil ich sonst nicht sehr bewandert bin damit.

  11. fidel Says:

    Naja … du benötigst halt einen Benutzer der dir einen normalen Login ohne Autoscript trigger ermöglicht …ansonsten hast du halt keine chance hier dein ssh-key setup zu basteln.

    Hast du diesen User – log dich per SSH ein und folge obigem Ablauf.

    Ohne davor zu sitzen – oder die Kiste im detail zu kennen (die Sache mit den Zusatzmodulen z.b.) ist es halt schwierig “ins blinde rein” zu helfen

  12. Dominik Says:

    ok, wenn ich’s richtig verstehe kann ich das NICHT von einem root user für einen anderen User erledigen :(
    ABER gerade erst entdeckt, daß es ja putty auch für os x gibt. Mit putty’s plink kann ich das passwort mitschicken. (plink -l user -pw passwort Zielmaschine).
    Also wäre mein Problem mehr oder weniger gelöst. Mit den ssh-keys, ohne das installieren von putty wäre es mir zwar lieber gewesen, aber so ist’s doch recht schmerzfrei.
    Danke!

  13. fidel Says:

    Falsch verstanden ;)
    Der root-user hätte absolut ausreichend rechte für den ssh-key weg

    Gruss
    fidel

  14. Dominik Says:

    :) na ja, mit PuTTY hab ich jetzt ein ganz nützliches Script für mich gebastelt, daß nachschaut, ob meine zwei NAS laufen und mir je nachdem eine Liste bietet, ob ich beide oder je einen rebooten oder runterfahren will.
    Im Thecus User Forum gepostet, falls Interesse
    http://thecususergroup.proboards.com/index.cgi?action=display&board=n5200modifications&thread=3775&page=1

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>