Die Android-App RaspController präsentiert sich als nützlicher Helfer rund um den RasPi und bietet zahlreiche Funktionen, die bei ähnlich gestrickten Alternativen fehlen.
Ein Raspberry Pi als Steuerzentrale für das Smart Home, einer als Mediacenter am Fernseher und ein weiterer als kleiner Server neben dem WLAN-Router statt eines deutlich größeren und stromhungrigeren NAS-Geräts: Dank des geringen Anschaffungspreises und der niedrigen Unterhaltskosten eignet sich der RasPi für eine Vielzahl von Aufgaben. Viele Anwender betreiben deshalb mehrere der Mini-Rechner im Haushalt oder im Büro.
Ab einer gewissen Anzahl fällt es allerdings schwer, die Übersicht zu behalten. Überhitzt etwa der im Schaltschrank eingequetschte RasPi? Läuft auf dem Raspberry-Pi-Server der Speicherplatz voll? Oder möchten Sie kurz einen der Sensoren eines Sense HAT [1] abfragen oder einen der GPIO-Ports schalten? Dafür müssen Sie sich nicht zwingend am jeweiligen RasPi anmelden oder eine umfangreiche Monitoring-Lösung aufsetzen: Mit der Android-App RaspController gelingt das vom Smartphone aus.
RaspController
In den App-Stores der zwei großen Smartphone-Systeme tummeln sich zahlreiche Monitoring-Apps für den Raspberry Pi. Die Android-App RaspController [2] geht allerdings einen Schritt weiter: Sie liest den Systemzustand und ausgesuchte Parameter aus dem Raspbian-System ein und bietet daneben zahlreiche Zusatzfunktionen wie eine SSH-Shell, einen Dateimanager oder Zugriff auf die GPIO-Schnittstelle und die Kamera des Raspberry Pi. Dabei braucht RaspController keine zusätzliche Software auf dem RasPi, sondern greift auf die bereits bestehenden Schnittstellen des Systems zurück.
Kompatibilität
Die Entwickler von RaspController orientieren sich primär an Raspbian. Auch andere auf Basis der Hauptdistribution für den Raspberry Pi entwickelte Betriebssysteme sollten problemlos mit der App funktionieren. Komplizierter gestaltet sich die Angelegenheit bei nicht auf Debian basierenden Distributionen wie etwa Arch Linux oder Fedora. Sie unterscheiden sich zwar nicht in der alltäglichen Bedienung, doch schon beim Paketmanagement wird RaspController unweigerlich scheitern. Mit ein wenig Handarbeit lassen sich dennoch viele Funktionen nutzen. Bei spezialisierten Distributionen wie etwa LibreELEC, die ein komplett eigenes System stricken, helfen auch Anpassungsarbeiten nicht mehr weiter: Hier lassen sich lediglich noch die Systeminformationen auslesen.
Die Installation von RaspController erfolgt über Googles Play-Store. Die kostenlose Basis-Version [3] bietet denselben Funktionsumfang wie die 2,99 Euro teure Pro-Variante der App [4]. Mit der Schlüssel-Erweiterung lassen sich die Anzeigen aus der App entfernen, zudem unterstützen Sie die Weiterentwicklung der Anwendung. Mit der Version 4 wurde die App zum Beispiel erst vor relativ kurzer Zeit umfassend erweitert und neu gestaltet.
Beim Start zeigt RaspController erst einmal ein fast leeres Anwendungsfenster. Durch Antippen des Plus-Icons rechts unten öffnen Sie einen Dialog, in dem Sie die Daten zu einem zu steuernden RasPi-System eintragen (Abbildung 1). Der Gerätename lässt sich frei wählen. Die Host-/IP-Adresse ermitteln Sie zum Beispiel auf der Kommandozeile des Raspberry Pi mit dem Kommando ip a show eth0. Die Werte für den SSH-Port und das Intervall (sek) müssen Sie in der Regel nicht anpassen.

Abbildung 1: Für den Zugriff auf das Raspbian-System des Raspberry Pi benötigt RaspController dieselben Login-Daten, die Sie auch für den SSH-Zugang nutzen.
Zugang aus dem Internet
Bei Bedarf greifen Sie auch von unterwegs via RaspController auf Ihren Raspberry Pi zu. Dazu müssen Sie den für SSH genutzten Port 22 vom WLAN-Router auf den RasPi weiterleiten und über einen DynDNS-Dienst eine feste Internet-Adresse einrichten. Das dafür nötige Vorgehen haben wir beispielsweise schon im Artikel zur Pintexx Pinbox in RPG 06/2019 ausführlich beschrieben [7]. Sie müssen die Anleitung lediglich in Bezug auf den Port anpassen.
Zudem sollten Sie auf jeden Fall das Passwort des Standardbenutzers pi ändern oder besser gleich die Authentifizierung über ein Passwort im SSH-Server abschalten und nur noch mit einem SSH-Schlüssel arbeiten. Öffnen Sie dazu die Konfigurationsdatei /etc/ssh/sshd_config mit administrativen Rechten in einem Texteditor und ändern Sie die Zeile #PasswordAuthentication yes in PasswordAuthentication no (Abbildung 2). Sie müssen also die Raute (#) am Anfang löschen und den Wert des Parameters in no abändern.
Als zusätzliche Sicherheitsmaßnahme empfiehlt es sich außerdem, in der Konfiguration der Port-Weiterleitung im Router einen anderen externen Port als Port 22 zu wählen: So gehen Sie einer Vielzahl automatischer Portscans aus dem Weg. Damit das Raspbian-System die Änderungen am SSH-Server übernimmt, müssen Sie zum Abschluss noch einmal mit dem Kommando sudo service ssh restart den Dienst neu starten.

Abbildung 2: Damit der Raspberry Pi Brute-Force-Angriffen auf den SSH-Server standhält, sollten Sie die Authentifizierung über ein Passwort in der Konfigurationsdatei /etc/ssh/sshd_config des Dienstes abstellen.
Zugang per SSH
Zur Authentifizierung benötigen Sie die Login-Daten für den Account pi oder einen alternativen Nutzer mit administrativen Rechten. Besser verwenden Sie einen RSA-Schlüssel. Dazu müssen Sie sich zuerst auf dem Raspbian-System einloggen und die nötigen Schlüssel wie in Listing 1 gezeigt erstellen. Die Frage nach dem Speicherort sollten Sie einfach mit der Eingabetaste beantworten und so die Vorgabe /home/pi/.ssh/id_rsa übernehmen. Die Angabe einer Passphrase ist optional; solange Sie die Schlüsseldateien sicher verwahren, müssen Sie nicht zwangsläufig mit einem zusätzlichen Passwort arbeiten.
Listing 1
$ ssh-keygen -t rsa -m PEM Generating public/private rsa key pair. Enter file in which to save the key (/home/pi/.ssh/id_rsa): Created directory '/home/pi/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/pi/.ssh/id_rsa. Your public key has been saved in /home/pi/.ssh/id_rsa.pub. The key fingerprint is: SHA256:zdpFX67oDo9pW/+eNS0uRYd+GyOhw7FphMO+0Mo1iIA pi@raspberrypi The key's randomart image is: +---[RSA 2048]----+ | | | | | . . . . ..| | E . * + ooo.| | . . S * *oo..| | . o B O oo+o| | . = * +.+o*| | o ..B.o o+| | .+o+.o+o| +----[SHA256]-----+ $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Anschließend übertragen Sie den Schlüssel auf das Smartphone. Dazu richten Sie den gewünschten RasPi in RaspController erst einmal mit dem Passwort des Pi-Users ein, stellen dann die Verbindung her und starten schließlich den Dateimanager. Öffnen Sie hier rechts oben über das Icon mit den drei übereinandergestapelten Punkten das Menü und aktivieren Sie die Option Zeige versteckte Dateien.
Daraufhin sollten Sie den Ordner .ssh im Home-Verzeichnis /home/pi/ sehen. Navigieren Sie in den Ordner und rufen Sie durch längeres Drücken auf die Schlüsseldatei id_rsa das Kontextmenü des Dateimanagers auf. Mit Kopieren übernehmen Sie die Datei in die Zwischenablage. Zu guter Letzt wechseln Sie in den Reiter ANDROID und fügen die Datei mit einem Druck auf das entsprechende Icon rechts unten in den Ordner Download ein.
Warum besser mit SSH-Key?
Gegenüber dem klassischen SSH-Login mit der Kombination aus Benutzername und Passwort hat das SSH-Key-Verfahren den Vorteil, dass sich der Zugang wesentlich besser verwalten lässt. So empfiehlt es sich zum Beispiel, für jeden Zugangsberechtigten (oder jede App) einen eigenen SSH-Schlüssel zu erstellen und diese jeweils einzeln in die Datei ~/.ssh/authorized_keys des SSH-Servers einzutragen (Listing 2, Zeilen 1 und 2).
Möchten Sie nun dem User den Zugriff auf den Raspberry-Pi-Server verbieten (oder haben Sie zum Beispiel das Smartphone mit den Schlüsseldateien verloren), müssen Sie lediglich den oder die betroffenen Schlüssel aus der Datei authorized_keys löschen. Dazu führen Sie entweder das Kommando aus Zeile*4 von Listing 2 aus oder bearbeiten die Datei mit einem Texteditor. Das “richtige” Login-Passwort ist weiterhin sicher.





