SSH-Key einrichten

Da es das wohl nicht schon fertig gibt:

Alle Angaben ohne Gewähr. Übernahme in Wiki/Webseite/was auch immer plus Verbesserungen sind nicht nur erlaubt, sondern sogar erwünscht. Ich bin technisch nicht allzu fit, also berichtigt mich. Beitrag darf auch angepinnt oder als Wiki geflaggt werden.

1.Wozu das Ganze?

Grade bei größeren, vielen kleinen oder unzugänglichen Installationen kann es hilfreich sein aus der Ferne Zugriff auf den Knoten zu haben. Vielleicht klemmt mal ein Autoupdate oder die Koordinaten/der Name/… sollen geändert werden. Man kann dazu ein Passwort setzen, allerdings ist ein SSH-Key weit sicherer. Da man sich vom Knoten aus auch Zugang zum vorgelagerten Netzwerk verschaffen kann, ist Sicherheit oberste Priorität. Dies gilt im privaten, aber erst recht im geschäftlichen Bereich.
Daher ist es Pflicht den Besitzer des vorgelagerten Netzwerks darüber aufzuklären, dass ihr Zugriff auf den Knoten habt und was das bedeutet!

2.Was wird benötigt?

Ein Router im Config-Mode und PuTTY. Auf der Internetseite von PuTTY findet ihr verschiedene Programme zum Download. Um einen SSH-Key zu erstellen, benötigt man PuTTYgen. Um zu einem Knoten zu verbinden, benötigt man PuTTY. Alternativ gibt es alle Installer als Zip und einen Installer mit allen Programmen bis auf PuTTYtel.

3.Den Key erstellen

Um ein Schlüsselpaar zu erzeugen, öffnet PuTTYgen und klickt auf „Generate“. Das Programm benötigt nun etwas Zufall um den Key zu erstellen, dazu bewegt ihr eure Maus über die freie graue Fläche. Ihr seht den Fortschritt am Balken darüber.

Sind die Keys erzeugt, tragt ihr bei „Key comment“ einen Namen für den Key ein, z.B. Key-Freifunk-01. Mit den beiden Feldern darunter könnt ihr ein Passwort setzen. Dies ist optional, aber wird dringend empfohlen. Zum Schluss klickt ihr auf „Save public key“ und auf „Save private key“, wobei ihr in den jeweiligen Dateinamen public bzw. private verwenden solltet. Nun kopiert ihr noch den Key aus dem grauen Feld.

4.Den Key eintragen

Nun müsst ihr den public Key in den Config-Mode eures Knotens eintragen. Dazu wechselt ihr in den Experten-Modus (oben rechts) und geht dort auf „Remotezugriff“.

In das Feld tragt ihr den public Key ein, den ihr grade kopiert habt oder ihr tragt den Key aus der Datei ein, die ihr eben gespeichert habt. Ihr könnt sie einfach mit dem Editor öffnen, wobei der Key auf mehrere Zeilen verteilt ist. Solltet ihr den Key aus dem Generator kopiert haben, müsst ihr nur den letzten Teil „rsa-key-DATUM“ löschen. Falls ihr den Key aus der Datei kopiert, interessiert den Knoten dabei nur der Teil nach dem Comment bis zum „----“, also die lange Kombination aus Buchstaben und Zahlen. Der Key muss in einer Zeile stehen, davor "ssh-rsa " (ssh-rsa AaBbCcDdEe…). Jetzt klickt ihr noch auf „Speichern“ und versetzt euren Knoten wieder in den Normalzustand.

Falls ihr vorher schon ein normales Passwort gesetzt habt, solltet ihr die beiden Passwort-Felder leeren, damit ihr euch nur noch mit dem Key anmelden könnt.

5.Testen ob es funktioniert (optional)

Öffnet PuTTY und klickt unter Connection > SSH > Auth auf „Browse“. Dort sucht ihr euren private Key und wählt ihn aus.

Nun geht ihr zurück zu Session und tragt die IP eures Knotens in das Feld Host Name (or IP Address) ein. Solltet ihr die nicht haben, guckt z.B. in eurer lokalen ALFRED-Liste. In das Feld unter Saved Sessions tragt ihr einen Namen (z.B. den Knotennamen) für die Verbindung ein und klickt auf „Save“. Das hat den Vorteil, dass ihr in Zukunft nur noch die Session auswählen und auf „Load“ klicken müsst.

Nun klickt ihr auf „Open“, beim ersten Login sollte eine Warnmeldung erscheinen, die ihr mit „Ja“ beantwortet. Danach fragt euch der Knoten nach einem Namen (login in as:) dort tragt ihr root ein und bestätigt mit Enter. Wenn ihr alles richtig gemacht habt, müsst ihr nur noch das Passwort eingeben, welches ihr am Anfang in PuTTYgen vergeben habt und ihr seid auf eurem Knoten eingeloggt.

Ab hier wird es gefährlich! Falls ihr noch nie mit SSH zu tun hattet und euch nicht halbwegs mit der Konsole auskennt, tippt exit ein und bestätigt mit Enter. Lest euch erst in die Befehle und Möglichkeiten ein bevor ihr euren Knoten versehentlich unbenutzbar macht.

10 „Gefällt mir“

Eine Ergänzung für die Ubuntu/Mint (und ich meine auf andere Debian-Varianten) Nutzer:
Hier erstellt ihr den SSH-Key (einfach) über die Konsole (auch „Terminal“ genannt) mit dem Befehl ssh-keygen -t rsa und findet euren so erstellten public Key dann in eurem Home-Verzeichnis im Ordner .ssh/ in der Datei id_rsa.pub.

Da ich mich Hauptsächlich unter Ubuntu und Mint bewege, bin ich mir nicht sicher, wie es bei anderen Derivaten aussieht. Und sollten sich Fehler eingeschlichen haben, fühlt euch frei mich zu korrigieren.

4 „Gefällt mir“

Was man da so alles tun kann, hier ein Anfang. :wink: Freifunk Rheinland e.V.

1 „Gefällt mir“

soweit gemacht.

Jetzt kommt die Fehlermeldung beim Login auf den Router:

unable to use key file

Erstellt habe ich über die Konsole in Linux.

Was hast du denn beim Knoten in das SSH-Keys-Feld eingetragen?

den Public Key mit ssh-rsa am anfang ohne das ebi@… am ende

Ich glaube du brauchst trotzdem PuTTYgen und musst da deinen private Key in das PuTTY Format umwandeln. Geht oben unter Conversions.

Also falls du PuTTY nutzt.

Ok, wie bekomme ich Puttygen für Linux? Konnte ich bisher nicht finden.

Putty nutze ich … den PuttySSH Client.

Ich bin Windows-Nutzer, deshalb kann ich es dir nicht genau beantworten. Den Source-Code findest du wie die Windowsinstaller auf der Downloadseite von PuTTY.

Ich meine mich zu erinnern, dass man das auch per apt installieren kann (Paket putty-tools?).

In jedem Linux gibt’s als Tools ssh und ssh-keygen. Das sind allerdings Kommandozeilenprogramme.

1 „Gefällt mir“

Super und vielen vielen Dank. Der Tipp mit dem keygen convert und Kommandozeile hat es gebracht. Ich bin drauf !!!

JUHU

2 „Gefällt mir“

Ich denke die Vergabe eines Key-Passwortes sollte nicht als optional bezeichnet werden sondern als „dringend empfohlen“.

Habs mal etwas umgeändert.

1 „Gefällt mir“

Vielen Dank für das tolle Tutorial.
Ich habe noch ein paar Anmerkungen, über die ggf. ein Anfänger stolpern könnte.

Wenn man die Public-Datei öffnet, dann ist der öffentliche SSH Schlüssel über mehrere Zeilen verteielt. Man muss diesen zwingend in eine Zeile schreiben, also schön jede Zeile hintereinander weg in das Browserfenster kopieren. Weiterhin muss man ssh-rsa Leerzeichen Schlüssel in die Zeile eintragen.

Danach auf speichern klicken.

Weiterhin sollte man das Passwort darunter, falls vorhanden, leeren und dort auf speichern klicken. So ist eine Anmeldung nur mit Passwort und ohne Private Schlüssel nicht mehr möglich.

Ggf. solltest du noch aufschreiben, wie man auf seine lokale ALFRED-Liste kommt. Ich vermute, dass du die Statusseite des Routers meinst. Bei mir im Ruhrgebiet ist das die 10.53.254.254. Aber irgendwie klappt es mal, mal klappt es nicht mit der IP… Hoffe du kannst da kurz weiterhelfen.

Edit
Meinst du ggf. folgenden Weg zum Alfred?
http://map.freifunk-ruhrgebiet.de/alfred/alfred.html → dort auf den Namen des Knoten (Hostname) klicken → Statusseite öffnet sich → IPv6 steht in [ ] in der URL

Ja, genau den Weg meinte ich. Aber du hast Recht, da hab ich mich unklar ausgedrückt :grin:
Die Statusseite kann ich ja als zweiten Weg angeben.

Auch den „Key rein kopieren“-Teil werde ich nochmal ändern sobald ich mehr als mein Smartphone habe zum Tippen. Dürfte ich dann vielleicht dein Bild verwenden? Das ist deutlich besser als meins.

Was ist denn der erste Weg zur IP? Wechselt die denn nicht immer?

Vielleicht könntest du auch auf die offizielle Webpräsenz http://www.chiark.greenend.org.uk/~sgtatham/putty/ von Putty verweisen, für den Fall, dass der Eigentümer von putty.org seine Pforten schließt.

Das Bild kannst du sehr gerne für dein Tutorial verwenden.

Link geändert und Bild eingefügt.

Das mit der IP kann man wohl so allgemeingültig nicht sagen, da das von Domäne zu Domäne verschieden ist :disappointed:

Da ich es selber erst suchen musste, füge ich hier mal etwas Wissen hinzu:

Wenn ihr später mal einen SSH-Key via SSH hinzufügen/entfernen wollt, dann müsst ihr die Datei /etc/dropbear/authorized_keys bearbeiten. Eine ausführlichere Anleitung (auch für Putty) gibt es hier im OpenWRT-Wiki.

1 „Gefällt mir“

Angesichts der aktuellen Einbrüche auf die Server meine Frage mit der Bitte um eine verbindliche und eindeutige Antwort: muss ich die Passwörter auf den Routern durch SSH KEYS ersetzen um die Sicherheit zu erhöhen?
Falls ja, sollte man dann nicht die Passwort-Option aus der Firmware entfernen?
Falls die Passwörter-Option entfernt wird, müsste man eine simple, sehr verständliche Anleitung mit zu den Routern liefern, wie man unter verschiedenen Betriebssystemen einen Key erstellt. oder?

Denke ich nicht. Kommt ja sehr auf die konkreten Einsatz-Umstände an. (Ich vergebe nie Passphrases für die Keys, trage sie aber auch nicht auf ungesicherten Endgeräten mit mir rum. YMMV)

Mit den Einbrüchen auf die Server hat der SSH-Zugang zu den Plaste-Routern ungefähr gar nix zu tun, wirklich nicht.

„Verbindlich und eindeutig“? Wird schwer. Hier können auch nur unterschiedliche Menschen, ihre unterschiedlichen Abwägungen mehr oder weniger begründet weitergeben. Bei solchen Fragen ist Informatik nicht so eine exakte Wissenschaft, wie der Laie vielleicht glaubt, wirklich nicht.

Müssen? Eher nicht.
Ist es sinnvoll? Kommt drauf an.

Ich finde die Authentifizierung mit Schlüssel in erster Linie unheimlich praktisch wegen der Möglichkeit, ohne Interaktion einfach mit dem Gerät zu verbinden.

Wenn Du nicht in der Lage oder nicht willens bist, ein einigermaßen sicheres Passwort zu wählen (besser: Dir von Keepass oder ähnlichen Tools generieren zu lassen), dann ist es auch auf jeden Fall sicherer, die Schlüssel-Variante zu wählen.

Wie wichtig ist es, den SSH-Zugang zu sichern? Hmmm, also, Freifunk-Router sind direkt aus dem gesamten IPv6-Netz zu erreichen (nicht nur Freifunk-intern, auch z.B. von einem Unitymedia-Anschluss aus). Dass und unter welcher Adresse sie erreichbar sind, wird auf jeder Knotenliste beworben, da ist der Name des Routers ja ein Link auf die IPv6-Adresse. Also, ja, ist schon recht wichtig, das Ding zu zu machen (auch wenn es jetzt nicht so ein spannendes Ziel für $Böse ist, ganz im Gegensatz zu den Servern, die gestern Ziel waren).

Was ist ein sicheres Passwort? Ach, herrje, auch wieder so 'ne Frage, auf die Dir auch Menschen, die davon leidlich Ahnung haben, drölfzig verschiedene Antworten geben werden: 936: Password Strength - explain xkcd

Wäre ich leidenschaftslos. Entfernen verhindert, dass sich jemand mit dem Passwort „Passw0rt“ in den Fuß schießt, drin lassen ermöglicht, dass es auch Menschen benutzen können, die (warum auch immer) mit dem Schlüssel-Zeug überfordert sind. (Ketzerisch: Sind diejenigen dann nicht spätestens nach dem Login sowieso überfordert?)

Wenn sie irgendjemand™ schreibt, gerne. Ansonsten würde ein Link auf einen der 1001 Artikel im Netz meiner Meinung nach auch reichen.

4 „Gefällt mir“