Meine Raspberry Pis nutze ich (bisher) headless, d.h. ohne Tastatur und Display. Der Zugriff auf die Raspi erfolgt per SSH von einem anderen Rechner oder meinen iPad. Nachdem ersten Start des Raspi starte ich mit ssh raspberrypi
eine Secure Shell und beginne mit den spezifischen Anpassungen des Systems.
Als ich gestern einen neuen Raspberry Pi mit aktuellen Raspbian (Raspbian 2017-04-10) aufsetzen wollte, bekam ich keinen SSH-Zugriff auf das frische System, sondern die Fehlermeldung ssh: connect to host 192.168.xxx.xxx port 22: Connection refused1.
Eine Google-Suche führte mich zu einem Artikel bei Linux und Ich. Ab Rasbian 2016-11-25 ist in den von der Raspberry Pi Foundation verteilten Images SSH aus Sicherheitsgründen deaktiviert und muss explizit aktiviert werden.
Nun hat man ein Problem, wenn SSH der einzige Weg ist, über den man mit seinem Raspi kommuniziert: Ohne aktiviertes SSH keine Zugriff und ohne Zugriff keine Aktivierung des SSH.
Es gibt einen Weg, um dieses Problem zu lösen. Findet das System in der boot-Partition (erste Partition) der SD-Karte eine Datei namens ssh (leer oder mit beliebigem Inhalt), wird der SSH-Server aktiviert und ein Zugriff ist möglich.
Die boot-Partition ist als FAT32 formatiert, sodass sie sich unter den meisten moderneren Betriebssystemen problemlos bearbeiten lässt. Unter unixoiden Betriebssystemen (Linux, OS X aka MacOS) legt man die Datei am einfachsten mit touch ssh
an.
Etwas schwieriger ist es, das richtige Verzeichnis zu finden. Das im Posting der Raspberry Pi Foundation genannte Verzeichnis /boot/ ist definitiv irreführend. Dort findet sich das fragliche Verzeichnis, wenn die SD-Karte im laufenden Raspi steckt.
Arbeitet man auf einem anderen Linux-System, dann ist dies die Stelle, an der sich die boot-Partition des aktuell laufenden Systems befindet. Dort die Datei abzulegen bringt naturgemäß nix. Wenn man den Gerätenamen des SD-Kartenlesers kennt, kann ein mount
einem auf die Sprünge helfen.
Auf meinem Mac (OS X) werden die Laufwerke unter /Volumes/ gemountet, sodass sich die Partition unter /Volumes/boot/ fand und ein touch /Volumes/boot/ssh
die Angelegenheit erledigte.
- Um die Angelegenheit noch undurchsichtiger zu machen, gab es zwei verschiedene Fehlerbilder: Vom Mac und iPad bekam ich ein Connection refused, während ich beim Versuchen von einem anderen Raspi aus sehr wohl einen Login-Prompt bekam, aber das Passwort abgewiesen wurde.
Zum letzteren Fehlerbild stellte sich heraus, dass ich beim manuellen Ändern des Hostnamen den Eintrag raspberrypi auf 127.0.0.1 in der /etc/hosts übersehen hatte und dieser Raspi wacker mit sich selbst connectierte… ↩