{"id":847,"date":"2012-12-02T14:30:12","date_gmt":"2012-12-02T13:30:12","guid":{"rendered":"http:\/\/www.butschek.de\/?p=847"},"modified":"2012-12-03T19:00:51","modified_gmt":"2012-12-03T18:00:51","slug":"ssh-keys-howto","status":"publish","type":"post","link":"https:\/\/www.butschek.de\/2012\/12\/02\/ssh-keys-howto\/","title":{"rendered":"SSH-Keys erzeugen und benutzen"},"content":{"rendered":"

\"\"<\/a>Ein SSH-Key erlaubt das Anmelden an einem Server, ohne das Passwort kennen zu m\u00fcssen. Das ist nicht un\u00fcblich, denn in den meisten Firmen gibt es mehrere Server und mehrere Admins. Daf\u00fcr zu sorgen, dass die Passw\u00f6rter regelm\u00e4\u00dfig gewechselt werden, jeder Admin immer das richtige Passwort von jedem Host kennt, aber gleichzeitig darauf zu achten, dass kein Passwort in falsche H\u00e4nde ger\u00e4t, ist oft keine einfache Sache.<\/p>\n

Mit dem SSH-Key ist es ganz einfach: Der Benutzer (z.B. der Admin) generiert sich einen SSH-Key welcher aus 2 Teilen besteht: Einem pers\u00f6nlichen Key, den er selbst beh\u00e4lt und niemanden weitergibt. Und einem \u00f6ffentlichen Key, der auf den Servern installiert wird, auf die er Zugriff hat.<\/p>\n

So l\u00e4\u00dft sich sehr einfach regeln, welche Person auf welchen Server darf. Durch Entfernen eines Keys kann eine Person auch wieder ausgesperrt werden. Und der Admin braucht auch keine Kennw\u00f6rter wissen. Der Besitz seines pers\u00f6nlichen Keys reicht aus, dass SSH den Zugang autorisiert.<\/p>\n

Ein weiterer Vorteil ist die h\u00f6here Sicherheit: \u00dcbliche Passw\u00f6rter (nehmen wir als Beispiel 8 Zeichen alphanumerisch) k\u00f6nnen nicht mehr als 2^10*14 Kombinationen haben, dies entspricht etwa 48 Bit. Ein SSH-Key kann problemlos 4096 Bit haben, ist also deutlich robuster gegen Angreifer.<\/p>\n

Wie macht man das nun? F\u00fcr Linux-User gibt es genug Anleitungen im Netz<\/a>, daher zeige ich den Weg, den Windows-Menschen gehen m\u00fcssen, um sich auf ihrem Linux Server anmelden zu k\u00f6nnen.<\/p>\n

SSH-Key erstellen<\/h2>\n

Schritt 1:<\/strong> PuTTYgen und Pageant herunterladen. Die Tools gibt es auf der PuTTY Download Page: http:\/\/www.chiark.greenend.org.uk\/~sgtatham\/putty\/download.html<\/a><\/p>\n

Schritt 2:<\/strong> PuTTYgen starten und unten erstmal Typ und die L\u00e4nge einstellen. Ich pers\u00f6nlich bevorzuge 4096 Bit RSA Schl\u00fcssel, um eine hohe Sicherheit zu erreichen. SSH1 Schl\u00fcssel oder Schl\u00fcssel unter 1024 Bit w\u00fcrde ich heute aus Sicherheitsgr\u00fcnden nicht mehr empfehlen.<\/p>\n

Schritt 3:<\/strong> Auf „Generate“ klicken und die Maus lange genug im Programmfenster bewegen. Der Schl\u00fcssel wird nun erstellt. Danach erfolgt die Eingabe von Kommentar und Passwort:<\/p>\n

\"Putty<\/a><\/p>\n

Als Kommentar wird empfohlen, Name und E-Mail Adresse einzugeben, denn der Kommentar wird auf dem Server sp\u00e4ter zu sehen sein. So kann man die einzelnen Keys verschiedener Benutzer leicht unterscheiden und wei\u00df auch sofort, wie man betreffende Inhaber schnell erreichen kann.<\/p>\n

Das Passwort (Key Passphrase) ist kein Zwang, allerdings empfehlenswert. Es sch\u00fctzt den Key mit diesem Passwort, so dass er nicht so einfach gestohlen werden kann. L\u00e4\u00dft man das Feld leer, so wird der Key nicht gesch\u00fctzt.<\/p>\n

Schritt 4:<\/strong> Der \u00f6ffentliche Key, der auf den Server geh\u00f6rt, ist oben im Feld „Public key for pasting…“ zu finden. Er kann per Copy&Paste \u00fcbernommen werden. Am Besten erstmal in einer Textdatei speichern, damit er nicht verloren geht.<\/p>\n

Schritt 5:<\/strong> Der private Schl\u00fcssel wird \u00fcber das Men\u00fc „Key – Save private key“ gespeichert. Achtung, das File (z.B. dein_name.ppk) enth\u00e4lt den privaten Key, kein Dritter sollte diese Datei bekommen. Man sollte sich dar\u00fcber im klaren sein, dass jeder, der den privaten Key hat, diesen auch nutzen k\u00f6nnte. Wird die Datei also weitergegeben, so w\u00e4re das, als w\u00fcrde man die Passw\u00f6rter aller Server weitergeben, auf denen man mit diesem Key Zugang erh\u00e4lt.<\/p>\n

\u00d6ffentlichen Key auf Linux-Server installieren<\/h2>\n

Zuerst mal per SSH mit dem Server verbinden. Im eigenen Home-Verzeichnis (~) muss ein Ordner namens .ssh existieren. Darin wird die Datei authorized_keys angelegt, in der alle \u00f6ffentlichen Keys der Personen abgelegt werden, die Zugang zum System erhalten sollen. Jeder Key kommt dabei in eine Zeile, Kommentare mit # sind erlaubt.<\/p>\n

Der Vorgang unter Linux k\u00f6nnte so aussehen:<\/p>\n

# Verzeichnis und Datei anlegen\r\nmkdir -m 0700 ~\/.ssh\r\ntouch .ssh\/authorized_keys\r\nchmod 600 .ssh\/authorized_keys<\/pre>\n
# Schl\u00fcssel hinzuf\u00fcgen\r\ncat >> .ssh\/authorized_keys\r\nssh-rsa AAAAB3Nza...b30nk= Michael Butschek (2012) <michael@butschek.de>\r\n[STRG-D]<\/pre>\n

Fertig. Ab jetzt l\u00e4\u00dft dieser Host Benutzer ohne Passwort rein, die den zum \u00f6ffentlichen Key passenden privaten Key besitzen.<\/p>\n

Benutzung des Keys in Putty<\/h2>\n

In Putty im Men\u00fc „Connection – SSH – Auth“ kann ein „Private Key file“ angegeben werden. Hier den privaten Key benutzen (pkk-Datei). Der Zugang zum Host, auf dem der \u00f6ffentliche Key liegt, ist nun ohne Passwort m\u00f6glich. Die Auth-Einstellung l\u00e4\u00dft sich nat\u00fcrlich auch direkt im Profil eines Hosts speichern, so ist es nicht n\u00f6tig, jedesmal den Key neu anzugeben.<\/p>\n

Was vielleicht st\u00f6rend bei der t\u00e4glichen Arbeit wird: PuTTY m\u00f6chte das Passwort des Keys jedesmal wissen, wenn er benutzt wird. Wenn man auf vielen Maschinen unterwegs ist, kann das ganz sch\u00f6n aufhalten. Daf\u00fcr gibt es SSH-Agents, die den Key einmal beim Start laden (und auch nur einmal das Passwort abfragen). Putty kann dann auf den Agent zugreifen und sich den Key von dort holen. So kann man sich beliebig oft ohne Passwort anmelden, ohne auf den Schutz eines Passwortes im Key zu verzichten.<\/p>\n

Installation Putty Agent<\/h2>\n

Der f\u00fcr Putty passende SSH Agent hei\u00dft Putty Agent. Das passende Tool Pageant haben wir weiter oben schon heruntergeladen. Es wird denkbar einfach bedient: Man startet die .exe Datei und \u00fcbergibt den Pfad zum privaten Schl\u00fcssel als Parameter. Das Tool fragt nun einmal nach dem Passwort. Danach verschwindet das Tool im System Tray und Putty kann den Key ohne weitere Passwortabfrage nutzen.<\/p>\n

Da das Starten von Programmen mit Kommandozeilenparametern unter Windows nicht so einfach ist, empfiehlt sich folgende Methode: Zuerst erzeugt man eine Verkn\u00fcpfung zu Pageant.exe und \u00f6ffnet dann die Eigenschaften dieser Verkn\u00fcpfung.<\/p>\n

Im Tab „Verkn\u00fcpfung“ findet man das Feld „Ziel“, in der der Pfad zur Exe-Datei steht. Dahinter setzt man dann (mit einem Leerzeichen getrennt) noch den vollst\u00e4ndigen Pfad zu seinem privaten Key.<\/p>\n

\"Putty<\/a><\/p>\n

Durch einen Doppelklick auf die Verkn\u00fcpfung wird der Agent nun gestartet und fragt das Passwort ab. Hat alles geklappt, findet sich der Agent danach im System Tray.<\/p>\n

M\u00f6chte man den Agent gleich beim Systemstart \u00f6ffnen, kann man zuletzt einfach noch die eben erstellte Verkn\u00fcpfung in den Autostart-Ordner schieben. Damit wird man sofort beim Systemstart nach dem Passwort f\u00fcr den Agent gefragt und kann dann Zugriff per SSH auf jedes seiner Systeme nehmen, ohne erneut ein Passwort zu ben\u00f6tigen.<\/p>\n

Viel Spa\u00df beim Nutzen der SSH-Keys.<\/p>\n","protected":false},"excerpt":{"rendered":"

Ein SSH-Key erlaubt das Anmelden an einem Server, ohne das Passwort kennen zu m\u00fcssen. Das ist nicht un\u00fcblich, denn in den meisten Firmen gibt es mehrere Server und mehrere Admins. Daf\u00fcr zu sorgen, dass die Passw\u00f6rter regelm\u00e4\u00dfig gewechselt werden, jeder Admin immer das richtige Passwort von jedem Host kennt, aber gleichzeitig darauf zu achten, dass […]<\/p>\n","protected":false},"author":1,"featured_media":672,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[4,5],"tags":[94,45,95,68,70,86],"_links":{"self":[{"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/posts\/847"}],"collection":[{"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/comments?post=847"}],"version-history":[{"count":13,"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/posts\/847\/revisions"}],"predecessor-version":[{"id":920,"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/posts\/847\/revisions\/920"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/media\/672"}],"wp:attachment":[{"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/media?parent=847"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/categories?post=847"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/tags?post=847"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}