mac | SSH unter Mac OS X 10.6
January 22nd, 2010 at 16:37Heute 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.1Host myExample2
User nutzer
HostName zielrechner
Nun ersetzt ein kurzer SSH-Befehl eine lange Befehlsfolge.
$ ssh myExample
3 Weiterführende Links
- http://developer.apple.com/mac/library/documentation/ Darwin/Reference/ManPages/man1/ssh.1.html
- http://developer.apple.com/mac/library/documentation/ Darwin/Reference/ManPages/man1/ssh-keygen.1.html
Tags: 10.6, authorized_keys, gastbeitrag, id_rsa.pub, scp, ssh-keygen, ssh://




January 22nd, 2010 at 16:40
Notiz am Rande – kein reines Mac OS X Thema – ich habe es trotzdem mal in dieser Kategorie gelassen.
January 22nd, 2010 at 17:43
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
January 22nd, 2010 at 17:54
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.
January 22nd, 2010 at 18:37
@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
January 22nd, 2010 at 18:39
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.
January 23rd, 2010 at 15:26
@ 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
January 23rd, 2010 at 22:21
Ich bevorzuge diesen Befehl um ein ssh Key zu erstellen:
ssh-keygen -trsa -b4096 -CKommentar
February 16th, 2010 at 14:39
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?
February 16th, 2010 at 14:42
@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
February 16th, 2010 at 14:59
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.
February 16th, 2010 at 15:04
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
February 16th, 2010 at 15:13
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!
February 16th, 2010 at 15:55
Falsch verstanden
Der root-user hätte absolut ausreichend rechte für den ssh-key weg
Gruss
fidel
February 16th, 2010 at 23:11
Im Thecus User Forum gepostet, falls Interesse
http://thecususergroup.proboards.com/index.cgi?action=display&board=n5200modifications&thread=3775&page=1