In diesem Beitrag wird es darum gehen, was SSH bedeutet und wie man den SSH-Zugang für den Raspberry Pi aktiviert. Es wird ebenfalls darum gehen, die Sicherheit des SSH-Zuganges zu erhöhen, indem man den SSH-Zugang mit einer Art Computer-Fingerabdruck sichert. Es wird nur bestimmten Computern möglich sein, sich mit dem Raspberry Pi SSH zu verbinden.
SSH und RSA
Was ist SSH?
Shell ist die textliche Oberfläche, von wo aus man den gesamten Rechner kontrollieren kann. Alles was du gerade auf deinem Bildschirm siehst, ist nur die grafische Benutzeroberfläche. In Wirklichkeit spielt sich alles auf der Shell-Ebene ab.
SSH (SecureShell) nennt man die verschlüsselte Verbindung, wobei man sich extern mit dem Server (Raspberry Pi) verbinden kann und ihm Befehle geben kann. Man kann Programme installieren, deinstallieren, starten, schließen oder Dateien erstellen, verändern, löschen und so weiter…
Was ist ein RSA-Schlüssel?
Ein RSA Schlüssel ist ein Hunderte Zeichen langes Passwort, was zufällig generiert wird und dadurch einmalig ist. Es ist also etwas wie ein Fingerabdruck, weil die Wahrscheinlichkeit, dass die selbe Zeichenfolge noch einmal vorkommt beinahe unmöglich ist.
Wir werden so einen Fingerabdruck erstellen und unserem Raspberry Pi sagen, dass nur dieser Fingerabdruck, die wir dem nennen, sich mit dem Pi verbinden können. Hierbei wird ein Privater und ein Öffentlicher Schlüssel generiert.
Der private Schlüssel ist dein Fingerabdruck. Es ist deine Kennung und deswegen solltest du es niemals raus geben. Der öffentliche Schlüssel ist ein kryptisches Passwort, was anhand deines privaten Schlüssels erstellt wird.
Dieser (öffentliche Schlüssel) wird auf dem Raspberry Pi abgelegt. Wenn du dich mit dem Raspberry Pi verbindest, schaut er sich deinen privaten Schlüssel an und gleicht es mit dem öffentlichen Schlüssel was ihm vorliegt ab. Wenn es zusammenpasst, wird eine Verbindung zugelassen. Ansonsten nicht. Ich hoffe das war verständlich. In der Praxis ist es viel einfacher zu verstehen.
Falls du deinen privaten Schlüssel an jemanden abgibst, kann er in deinem Namen sich mit dem Raspberry Pi anmelden.
SSH-Zugang am Raspberry-Pi aktivieren
Auf dem Raspberry Pi öffnet ihr die Konsole, gebt sudo raspi-config ein und bestätigt es mit Enter. Danach müsst ihr folgendes tun:





Zur Sicherheit solltet ihr euren Raspberry Pi noch einmal neustarten.
Einen Neustart könnt ihr einfach mit folgenden Befehl machen:
sudo reboot
Von jetzt an könnt ihr euch über die IP-Adresse eures Raspberry Pi’s mit dem Raspberry Pi über SSH Verbinden. Die IP Adresse findet ihr heraus, indem ihr in die Konsole folgendes eingebt:
hostname -I

Sobald ihr das gemacht habt, wird euch die IP-Adresse angezeigt. Dieses Fenster nicht schließen. Die IP-Adresse werden wir noch brauchen.
SSH Verbindung herstellen
Um eine SSH Verbindung aufzubauen, müsst ihr erst einmal MobaXterm herunterladen und installieren. Anschließend öffnet ihr MobaXterm und klickt auf Session. Es öffnet sich das Konfigurationsfenster. Dort klickt ihr auf SSH (ganz links) und gebt eure Zugangsdaten zum Raspberry Pi ein.

Unter Remote host gebt ihr eure IP-Adresse ein, die wir zuvor angezeigt bekommen haben. Ihr müsst einen Haken an Specify username setzen und dort euren Benutzernamen eingeben. Falls ihr diese nicht geändert habt, ist diese standardmäßig pi. Am Ende gebt ihr unter Bookmark settings noch einen Namen für diese Verbindung und klickt auf okay. Es wird eine Verbindung hergestellt.
Sobald eine Verbindung hergestellt wurde, könnt ihr euer Raspberry Pi vom Monitor und allen anderen Geräten abstecken und dort verstauen, wo es für die restliche Zeit stehen soll.
RSA-Schlüssel generieren
Unser Raspberry Pi ist aktuell mit der IP-Adresse öffentlich zugänglich. Um die Sicherheit zu erhöhen, werden wir die Verbindung zu unserem Raspberry Pi nur für bestimmte Rechner erlauben. Hierfür müssen wir einen RSA Schlüssel generieren.


Grün: Kommentar. Dort könnt ihr euren Schlüssel benennen. Z.B. Laptop zuhause
Blau: Dort könnt ihr beide Schlüssel speichern.
Den Private Key dürft ihr niemals herausgeben.
Nachdem ihr einen Schlüssel generiert habt, solltet ihr beide Schlüssel (public und private) auf eurer Festplatte speichern und so gut wie möglich absichern. Dieses Fenster können wir offen lassen, weil wir den Public Key (im Screenshot gelb) noch benötigen werden.
Euren RSA-Schlüssel im Raspberry Pi hinterlegen
In die Kommandozeile von MobaXterm gebt ihr folgenden Befehl ein:
mkdir .ssh && cd .ssh && ssh-keygen -t rsa && sudo nano ~/.ssh/authorized_keys
Dieser befehl erstellt den Ordner .ssh in das Hauptverzeichnis eures Raspberry Pi’s, legt dort eine Datei mit dem Namen authorized_keys an und öffnet diese zum bearbeiten. Die authorized_keys Datei beinhaltet alle öffentlichen Schlüssel, die sich mit eurem Pi über SSH verbinden dürfen.
Ihr kopiert nun euren öffentlichen Schlüssel vom dem Fenster, wo ihr einen Schlüssel generiert habt, und fügt diesen hier ein. Anschließend beendet ihr den Texteditor (Strg + X) und bestätigt die Änderungen. Sobald die Datei gespeichert ist, könnt ihr das Fenster mit dem öffentlichen Schlüssel schließen.
Falls ihr mehrere Public Keys hinzufügen möchtet, müssen diese zeilenweise hinzugefügt werden. Ein Key pro Zeile.
SSH-Zugriff auf euren RSA-Schlüssel einschränken
Nachdem wir das oben gemacht haben, können wir zum nächsten Schritt weitergehen. Aktuell kann man sich mit einem Benutzernamen und einem Passwort in euren Raspberry Pi anmelden. Wir wollen das jedoch so machen, dass man nur noch mit einem RSA-Schlüssel anmelden darf.
Mit dem folgenden Befehl öffnet ihr die SSH -Konfiguration des Raspberry Pi’s:
sudo nano /etc/ssh/sshd_config
Achtung!
In dieser Datei solltet ihr nur die Anweisungen befolgen und diesen dann schließen. Hier sollten keine unüberlegten Änderungen gemacht werden!
In dieser Datei werdet ihr sehen, dass viele Zeilen auskommentiert sind Auskommentierte Einstellungen haben ein Raute (#) vorne stehen. Das bedeutet, dass diese Einstellungen aktuell nicht aktiv sind. Ihr solltet nun die unten stehenden Einstellungen suchen und, falls diese auskommentiert sind diese aktivieren, indem ihr das # am Anfang der Zeile entfernt.
Falls ihr diese Einstellungen nach sorgfältiger Suche nicht findet, könnt ihr diese auch händig schreiben.
PasswordAuthentication no
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
Sobald ihr damit fertig seid, schließt ihr den Editor (Strg + X) und bestätigt die Änderungen. Danach müsst ihr noch den SSH-Dienst neustarten mit dem Befehl:
sudo /etc/init.d/ssh restart
Falls eure Verbindung zum Server abbricht und ihr keine Verbindung mehr aufbauen könnt, ist das normal. Darum kümmern wir uns jetzt.
Mit dem RSA-Schlüssem beim Raspberry Pi anmelden
Falls ihr noch mit dem Pi verbunden seid, trennt diese Verbindung mit dem Befehl
exit
In MobaXterm seht ihr auf der linken Seite eure Verbindungen. Dazwischen ist auch eure Verbindung zum Raspberry Pi. Dort macht ihr ein Rechtsklick und klickt auf Edit Session. Es öffnet sich folgendes Fenster:

Mit einem Klick auf Advanced SSH settings (grün) ruft ihr die erweiterten Einstellungen für diese Verbindung auf. Dort müsst ihr lediglich einen Häkchen auf Use private key (blau) setzen und dort euren Private Key, den ihr vorher abgespeichert hattet öffnen.
Mit einem klick auf OK werden die Einstellungen gespeichert und ihr könnt euch wieder mit eurem Pi verbinden. Somit ist euer Raspberry Pi nur noch für diesen Rechner zugänglich. Falls ihr noch weitere Rechner hinzufügen möchtet, fügt ihr deren Public Key einfach in die authorized_keys Datei hinzu.
Im nächsten Teil werden wir eine Remote Desktop Verbindung mit mit unserem Raspberry Pi herstellen, um auch eine grafische Benutzeroberfläche zu haben.