{"id":67,"date":"2013-11-06T11:42:59","date_gmt":"2013-11-06T10:42:59","guid":{"rendered":"http:\/\/userpage.fu-berlin.de\/~rober\/blog\/?p=67"},"modified":"2014-03-25T13:10:55","modified_gmt":"2014-03-25T12:10:55","slug":"ssh-mit-macos","status":"publish","type":"post","link":"https:\/\/userpage.fu-berlin.de\/~rober\/blog\/2013\/11\/ssh-mit-macos\/","title":{"rendered":"SSH mit dem Mac"},"content":{"rendered":"<h1>SSH unter MacOS (OS X)<\/h1>\n<p>Hier soll am Beispiel des f\u00fcr alle <a title=\"Freie Universit\u00e4t Berlin\" href=\"http:\/\/www.fu-berlin.de\/\">FU<\/a> Angeh\u00f6rigen nutzbaren Servers<a title=\"Login-Server der ZEDAT\" href=\"http:\/\/www.zedat.fu-berlin.de\/Login-Server\"> Login.ZEDAT.FU-Berlin.DE<\/a> kurz gezeigt werden, wie per <a title=\"Wikipedia-Artikel zu SSH\" href=\"https:\/\/de.wikipedia.org\/wiki\/Secure_Shell\">SSH<\/a> eine verschl\u00fcsselte Verbindung zum Fernzugriff auf einen Server aufgebaut werden kann. Mit Hilfe einer solchen Verbindung k\u00f6nnen z.B. Dateien f\u00fcr eine <a title=\"Userpage-Service der ZEDAT\" href=\"http:\/\/www.zedat.fu-berlin.de\/Userpage\">eigene Homepage<\/a>, mit dem Server ausgetauscht oder direkt auf ihm editiert werden.<\/p>\n<p><em>Wir gehen hier im Weiteren davon aus, dass auf dem Client-Rechner ein &#8220;OS X&#8221; Betriebssystem l\u00e4uft, es sich also z.B. um ein MacBook handelt. Nat\u00fcrlich ist eine SSH Verbindung aber auch mit anderen Betriebssystemen wie Windows oder Linux m\u00f6glich.<\/em><\/p>\n<h2>Ein Terminal bitte<\/h2>\n<p>Die Fernsteuerung von Unix-artigen Servern erfolgt meist \u00fcber eine textbasierte Verbindung. Zum Gl\u00fcck ist das kein Problem, denn der Mac bringt die eine so genannte <strong>Terminal<\/strong> App mit.<\/p>\n<p>Das Terminal l\u00e4sst sich \u00fcber die Suche via Spotlight (oben rechts, Mac-User wissen wie das geht) finden und starten.<\/p>\n<figure id=\"attachment_68\" aria-describedby=\"caption-attachment-68\" style=\"width: 300px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/userpage.fu-berlin.de\/~rober\/blog\/wp-content\/uploads\/MacOS-Terminal-via-Spotlight.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-68\" alt=\"Terminal via Spotlight\" src=\"http:\/\/userpage.fu-berlin.de\/~rober\/blog\/wp-content\/uploads\/MacOS-Terminal-via-Spotlight-300x83.png\" width=\"300\" height=\"83\" srcset=\"https:\/\/userpage.fu-berlin.de\/~rober\/blog\/wp-content\/uploads\/MacOS-Terminal-via-Spotlight-300x83.png 300w, https:\/\/userpage.fu-berlin.de\/~rober\/blog\/wp-content\/uploads\/MacOS-Terminal-via-Spotlight.png 483w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-68\" class=\"wp-caption-text\">Terminal starten<\/figcaption><\/figure>\n<p>\u00dcber das Terminal k\u00f6nnen lokale Programme aufgerufen werden, und zwar auch solche, die keine grafische Benutzeroberfl\u00e4che mitbringen.<\/p>\n<h2>Schl\u00fcsselfrage<\/h2>\n<p>Wenn es nur darum geht, sich <span style=\"text-decoration: underline;\">\u00fcberhaupt<\/span> einmal per SSH mit einem entfernten Rechner zu verbinden, reicht es in vielen F\u00e4llen, diesen einfach folgenderma\u00dfen anzusprechen.<\/p>\n<pre>ssh user@myserver.example.org<\/pre>\n<p>Damit w\u00fcrde als Benutzer &#8220;user&#8221; eine SSH Verbindung mit dem entfernten Rechner &#8220;myserver.example.org&#8221; aufgebaut. Dieser w\u00fcrde daraufhin vermutlich nach dem Passwort fragen und nach erfolgreicher Eingabe, die Verbindung herstellen. Die Authentifizierung mit Benutzername und Passwort ist aber total out,\u00a0 also kommen wir gleich zum n\u00e4chsten Schritt: <strong>Wir erstellen einen so genannten SSH-Key<\/strong>, ein Schl\u00fcsselpaar mit privatem und \u00f6ffentlichem Teil, \u00fcber das wir zuk\u00fcnftig ganz ohne das Passwort des Benutzers auf dem entfernten Rechner eingeben zu m\u00fcssen zugreifen wollen.<\/p>\n<h2>SSH-Key erstellen<\/h2>\n<p>Ein pers\u00f6nlicher SSH-Key ist schnell erstellt; dazu wird einfach der Befehl <strong>ssh-keygen<\/strong> eingetippt.<\/p>\n<figure id=\"attachment_69\" aria-describedby=\"caption-attachment-69\" style=\"width: 300px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/userpage.fu-berlin.de\/~rober\/blog\/wp-content\/uploads\/MacOS-SSH-Key-Generation.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-69\" alt=\"ssh-keygen im Terminal\" src=\"http:\/\/userpage.fu-berlin.de\/~rober\/blog\/wp-content\/uploads\/MacOS-SSH-Key-Generation-300x210.png\" width=\"300\" height=\"210\" srcset=\"https:\/\/userpage.fu-berlin.de\/~rober\/blog\/wp-content\/uploads\/MacOS-SSH-Key-Generation-300x210.png 300w, https:\/\/userpage.fu-berlin.de\/~rober\/blog\/wp-content\/uploads\/MacOS-SSH-Key-Generation-427x300.png 427w, https:\/\/userpage.fu-berlin.de\/~rober\/blog\/wp-content\/uploads\/MacOS-SSH-Key-Generation.png 684w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-69\" class=\"wp-caption-text\">ssh-keygen<\/figcaption><\/figure>\n<p><strong>Auf die Frage, wo der Key gespeichert werden soll, kann durch Dr\u00fccken der Eingabetaste geantwortet werden.<\/strong> Die vorgeschlagene Stelle ist genau die richtige, denn das ist der Standardort, an dem wohl alle Programme automatisch danach suchen w\u00fcrden.<\/p>\n<p>Auf die Frage, ob der <strong>Key mit einem Passwort<\/strong> versehen werden soll, kann &#8211; je nach Anwendungsfall &#8211; wieder einfach durch Dr\u00fccken der Eingabetaste geantwortet werden (dann bekommt der Key kein Passwort), oder es wird ein Passwort angegeben (zur Tippfehlervermeidung muss dieses, wie \u00fcblich, zweimal eingegeben werden). Im Beispiel, bei dem das Bildschirmfoto entstanden ist, wurde solch ein Passwort gesetzt. Das Setzten eines Passworts verhindert, dass der private Schl\u00fcssel &#8220;einfach so&#8221; benutzt werden kann, und bietet also eine weitere Sicherheitsstufe.<\/p>\n<h2>Public-Key auf dem Server \u00fcbertragen<\/h2>\n<p>Damit der SSH-Key k\u00fcnftig f\u00fcr Verbindungen mit dem Server genutzt wird, muss der \u00f6ffentliche Teil des Schl\u00fcsselpaars auf den Server \u00fcbertragen und dort an der richtigen Stelle abgelegt werden. Es sind also noch 2 Schritte notwendig (und es muss dabei noch zweimal das Passwort f\u00fcr den entfernten Server eingetippt werden, und dann nie wieder):<\/p>\n<ul>\n<li>Public-Key auf den Server kopieren<\/li>\n<li>Public-Key an der richtigen Stelle ablegen<\/li>\n<\/ul>\n<h3>SSH Public-Key kopieren<\/h3>\n<p>Um den \u00f6ffentlichen Schl\u00fcssel zu \u00fcbertragen, kann direkt im Terminal das Befehl <strong>scp<\/strong> benutzt werden.<\/p>\n<dl class=\"wp-caption alignnone\" id=\"attachment_72\" style=\"width: 310px;\">\n<dt class=\"wp-caption-dt\"><\/dt>\n<dd class=\"wp-caption-dd\">scp ~\/.ssh\/id_rsa.pub benutzer@login.zedat.fu-berlin.de:mymac.pub<\/dd>\n<\/dl>\n<p>Damit wird die vorhin erzeugte Datei mit dem \u00f6ffentlichen Schl\u00fcssel auf den Server kopiert. Wurde vorher noch nie eine Verbindung mit diesem Server hergestellt (wie im Beispiel), wird zun\u00e4chst noch einmal nachgefragt, ob die Verbindung wirklich aufgebaut werden soll. Dabei wird der so genannte &#8220;Fingerprint&#8221; des Servers angezeigt. Der Verbindungsaufbau muss dann einmal durch die Eingabe von <strong>yes<\/strong> best\u00e4tigt werden.<\/p>\n<figure id=\"attachment_73\" aria-describedby=\"caption-attachment-73\" style=\"width: 300px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/userpage.fu-berlin.de\/~rober\/blog\/wp-content\/uploads\/MacOS-SCP-via-Terminal.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-73\" alt=\"MacOS scp via Terminal\" src=\"http:\/\/userpage.fu-berlin.de\/~rober\/blog\/wp-content\/uploads\/MacOS-SCP-via-Terminal-300x210.png\" width=\"300\" height=\"210\" srcset=\"https:\/\/userpage.fu-berlin.de\/~rober\/blog\/wp-content\/uploads\/MacOS-SCP-via-Terminal-300x210.png 300w, https:\/\/userpage.fu-berlin.de\/~rober\/blog\/wp-content\/uploads\/MacOS-SCP-via-Terminal-427x300.png 427w, https:\/\/userpage.fu-berlin.de\/~rober\/blog\/wp-content\/uploads\/MacOS-SCP-via-Terminal.png 684w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-73\" class=\"wp-caption-text\">scp via Terminal<\/figcaption><\/figure>\n<h3>Public-Key als zugriffsberechtigt eintragen<\/h3>\n<p>Hat der Kopiervorgang geklappt, liegt der \u00f6ffentliche Schl\u00fcssel auf dem Server vor. Im Beispiel in der Datei &#8220;mymac.pub&#8221;. Diese muss jetzt noch an die richtige Stelle auf dem Server kopiert werden, damit der Zugang beim n\u00e4chsten Mal \u00fcber den SSH-Key funktioniert. Dazu ist (ein letztes Mal) eine Verbindung mit der herk\u00f6mmlichen Username und Passwort-Kombination n\u00f6tig.<\/p>\n<figure id=\"attachment_74\" aria-describedby=\"caption-attachment-74\" style=\"width: 300px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/userpage.fu-berlin.de\/~rober\/blog\/wp-content\/uploads\/MacOS-Authorized-Key.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-74\" alt=\"authorized_keys\" src=\"http:\/\/userpage.fu-berlin.de\/~rober\/blog\/wp-content\/uploads\/MacOS-Authorized-Key-300x210.png\" width=\"300\" height=\"210\" srcset=\"https:\/\/userpage.fu-berlin.de\/~rober\/blog\/wp-content\/uploads\/MacOS-Authorized-Key-300x210.png 300w, https:\/\/userpage.fu-berlin.de\/~rober\/blog\/wp-content\/uploads\/MacOS-Authorized-Key-427x300.png 427w, https:\/\/userpage.fu-berlin.de\/~rober\/blog\/wp-content\/uploads\/MacOS-Authorized-Key.png 684w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-74\" class=\"wp-caption-text\">Public-Key nach authorized_keys<\/figcaption><\/figure>\n<p>Im Beispiel wird eine SSH Session mit dem Login-Server aufgebaut, dann wird das Verzeichnis &#8220;.ssh&#8221; erstellt und dann die vorher kopierte Datei mit dem \u00f6ffentlichen Schl\u00fcssel als &#8220;authorized_keys&#8221; in dieses neue Verzeichnis kopiert.<\/p>\n<p>Achtung: Das Vorgehen im Beispiel-Screenshot (per Kopierbefehl &#8220;cp&#8221;) ersetzt eine ggf. schon vorhandene &#8220;authorized_keys&#8221; Datei vollst\u00e4ndig.\u00a0 Etwas sicherer w\u00e4re die folgende Vorgehensweise, bei der der neue Schl\u00fcssel dann zus\u00e4tzlich angef\u00fcgt w\u00fcrde, falls schon anderen \u00f6ffentliche Schl\u00fcssel in der Datei stehen:<\/p>\n<pre>mkdir -p ~\/.ssh\r\ncat ~\/mymac.pub &gt;&gt; ~.\/.ssh\/authorized_keys\r\nexit<\/pre>\n<h2>SSH-Verbindung mit SSH-Key<\/h2>\n<p>Ab sofort ist es nun m\u00f6glich, die SSH-Verbindung \u00fcber den eigenen SSH-Key aufzubauen. Falls ein Passwort bei der Erstellung des SSH-Keys gesetzt wurde wird unter MacOS ggf. gefragt, ob der Schl\u00fcssel in der so genannten &#8220;keychain&#8221; gespeichert werden soll (dann ist w\u00e4hrend der Sitzung kein erneutes Eingeben das SSH-Key Passworts n\u00f6tig).<\/p>\n<figure id=\"attachment_75\" aria-describedby=\"caption-attachment-75\" style=\"width: 300px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/userpage.fu-berlin.de\/~rober\/blog\/wp-content\/uploads\/MacOS-Keychain.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-75\" alt=\"key to keychain\" src=\"http:\/\/userpage.fu-berlin.de\/~rober\/blog\/wp-content\/uploads\/MacOS-Keychain-300x164.png\" width=\"300\" height=\"164\" srcset=\"https:\/\/userpage.fu-berlin.de\/~rober\/blog\/wp-content\/uploads\/MacOS-Keychain-300x164.png 300w, https:\/\/userpage.fu-berlin.de\/~rober\/blog\/wp-content\/uploads\/MacOS-Keychain-500x274.png 500w, https:\/\/userpage.fu-berlin.de\/~rober\/blog\/wp-content\/uploads\/MacOS-Keychain.png 724w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-75\" class=\"wp-caption-text\">MacOS Keychain<\/figcaption><\/figure>\n<p>Damit ist die Verbindung per SSH Key eingerichtet und es kann jederzeit interaktiv auf dem Server gearbeitet werden.<\/p>\n<pre>ssh benutzer@login.zedat.fu-berlin.de\r\nmkdir -p ~\/public_html\/images<\/pre>\n<p>Auch ein Kopieren von Daten vom Mac auf den Server (oder andersherum) ist nun jederzeit m\u00f6glich, und die Authentifizierung erfolgt dabei\u00a0 \u00fcber den eigenen SSH-Key.<\/p>\n<pre>scp *.png benutzer@login.zedat.fu-berlin.de:public_html\/image<\/pre>\n<p><em>Statt dem Terminal k\u00f6nnen f\u00fcr die Kopiervorg\u00e4nge nat\u00fcrlich auch grafische Clients (wie z.B. Cyperduck o.\u00e4.) verwendet werden. Die genaue Bedienung h\u00e4ngt dabei vom jeweiligen Client ab, als Art der Verbindung sind dann meist &#8220;SCP&#8221; oder &#8220;SFTP&#8221; auszuw\u00e4hlen, und der lokale Speicherort des eigenen SSH-Keys muss ggf. noch explizit angegeben werden.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>SSH unter MacOS (OS X) Hier soll am Beispiel des f\u00fcr alle FU Angeh\u00f6rigen nutzbaren Servers Login.ZEDAT.FU-Berlin.DE kurz gezeigt werden, wie per SSH eine verschl\u00fcsselte Verbindung zum Fernzugriff auf einen Server aufgebaut werden kann. Mit Hilfe einer solchen Verbindung k\u00f6nnen z.B. Dateien f\u00fcr eine eigene Homepage, mit dem Server ausgetauscht oder direkt auf ihm editiert [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[23,17],"tags":[42,44,41,43,31,29],"_links":{"self":[{"href":"https:\/\/userpage.fu-berlin.de\/~rober\/blog\/wp-json\/wp\/v2\/posts\/67"}],"collection":[{"href":"https:\/\/userpage.fu-berlin.de\/~rober\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/userpage.fu-berlin.de\/~rober\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/userpage.fu-berlin.de\/~rober\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/userpage.fu-berlin.de\/~rober\/blog\/wp-json\/wp\/v2\/comments?post=67"}],"version-history":[{"count":12,"href":"https:\/\/userpage.fu-berlin.de\/~rober\/blog\/wp-json\/wp\/v2\/posts\/67\/revisions"}],"predecessor-version":[{"id":82,"href":"https:\/\/userpage.fu-berlin.de\/~rober\/blog\/wp-json\/wp\/v2\/posts\/67\/revisions\/82"}],"wp:attachment":[{"href":"https:\/\/userpage.fu-berlin.de\/~rober\/blog\/wp-json\/wp\/v2\/media?parent=67"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/userpage.fu-berlin.de\/~rober\/blog\/wp-json\/wp\/v2\/categories?post=67"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/userpage.fu-berlin.de\/~rober\/blog\/wp-json\/wp\/v2\/tags?post=67"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}