Falls wie im Beitrag Debian Backports in Raspbian Jessie Lite aktivieren und verwenden die Debian Jessie Backports in Raspbian Jessie Lite aktiviert und Pakete daraus installiert wurden, jetzt aber auf die eigentliche StableVersion des Pakets zurückgewechselt werden soll kann nachfolgender Befehl genutzt werden.
Debian Backports erlauben es neuere Software als in den Debian Repositorien vorhanden zu installieren. Die für Debian Jessie können auch bei Raspbian Jessie Lite verwendet werden, welches auf Debian Jessie basiert. Auf der Webseite https://packages.debian.org/jessie-backports/ kann die aktuelle Paketliste der Debian Jessie Backports eingesehen werden. In diesem Beitrag beschreibe ich wie die Backports aktiviert und verwendet werden können.
Aktivierung
Zuerst müssen die Debian Signing Keys importiert werden.
Jetzt kann das Backports Repositoryhinzugefügt werden.
$ echo 'deb http://httpredir.debian.org/debian jessie-backports main contrib non-free' | sudo tee -a /etc/apt/sources.list.d/jessie-backports.list
Damit die Pakete im Backports Repository auch gefunden werden muss die Paketliste noch aktualisiert werden.
$ sudo apt-get update
Verwendung
Das Backports Repository hat eine niedrigere Priorität als die übrigen Repositorien. Deshalb sollten es keine normalen Raspbian Pakete überschreiben. Deshalb muss aber apt jedes Mal explizit gesagt werden, dass es Backports verwenden soll. Der Befehl zum Installieren eines Paketes aus dem Backports Repository sieht dann folgendermaßen aus.
In diesem Beitrag beschreibe ich, wie ein Headless Raspberry Pi mit Raspbian Jessie Lite eingerichtet werden kann. Dazu wird neben dem Raspberry Pi auch eine passende (micro)SD-Karte mit mindestens 2 GB benötigt.
Ein Anleitung für das aktuelle Raspbian Stretch Lite ist hier verfügbar:
Raspbian Image herunterladen
Raspbian Jessie Lite ist eine auf Debian Jessie basierende Linux Distribution für den Raspberry Pi. Sie wird offiziell von der Raspberry Pi Foundation unterstützt. Ein Image kann auf der offiziellen Raspberry Pi Homepage heruntergeladen werden.
Nach dem Download (1) kann noch der SHA-1 Hashwert (2) überprüft werden. Wie dies mit dem Windows Subsystem for Linux erreicht werden kann habe ich in dem Artikel Hashwert einer Datei unter Ubuntu Linux 16.04 berechnen beschrieben.
Image auf (micro)SD-Karte kopieren
Nun kann das Image auf die (micro)SD-Karte geschrieben werden. Dazu kann das Programm Etcher verwendet werden. Es lässt sich einfach über die offizielle Homepageherunterladen.
Nach der Installation kann Etcher einfach über das Startmenü gestartet werden.
Zuerst muss das heruntergeladene zip-Image ausgewählt werden. Dazu muss zuerst auf „Select image“ geklickt werden.
In dem nun angezeigten Dialog muss zuerst das zip-Image ausgewählt werden (1). Anschließend muss es mit einem Klick auf „öffnen“ (2) bestätigt werden.
Anschließend muss das richtige Ziellaufwerk – die (micro)SD-Karte – ausgewählt werden, falls dies nicht schon automatisch geschehen ist. Dazu muss zuerst auf „Change“ geklickt werden.
Nun muss zuerst das Laufwerk ausgewählt (1) und anschließend auf „Continue“ (2) geklickt werden.
Abschließend muss nur noch auf „Flash!“ geklickt werden.
Nun Startet der Kopiervorgang. Etcher kopiert zuerst das Image, validiert es anschließend und wirft zuletzt die (micro)SD-Karte aus.
Nach erfolgreicher Validierung wird eine Erfolgsmeldung angezeigt.
SSH Aktivieren
Da wir den Raspberry Pi Headless betreiben müssen wir uns per SSH auf ihn verbinden können. Aus Sicherheitsgründen ist SSH bei Raspbian standardmäßig deaktiviert. Um es zu aktiveren muss auf der Boot Partition eine Datei mit dem Namen SSH angelegt werden. Diese benötigt keinen Inhalt. Während des Startens prüft Raspbian, ob diese Datei vorhanden ist. Ist sie es wird SSH aktiviert und die Datei gelöscht. So ist es auch ohne Bildschirm und Tastatur möglich den SSH Server zu aktivieren. Damit diese Datei erstellt werden kann muss die (micro)SD-Karte durch aus und wieder einstecken erneut gemountet werden. Sie wurde von Etcher nach erfolgreichem Kopieren automatisch ausgeworfen.
Nun kann die (micro)SD-Karteausgeworfen und in den Raspberry Pi gesteckt werden. Anschließend kann der Raspberry Pi mit einem Netzwerk- und Micro-USB Kabel verbunden werden.
Raspbian konfigurieren
IP-Adresse herausfinden
Um Raspbian konfigurieren zu können muss zuerst die IP-Adresse herausgefunden werden. Dies kann z.B. über die Weboberfläche des Routers, oder, falls Linux verwendet wird, über netdiscover erledigt werden. Falls netdiscover noch nicht installiert ist kann es einfach über die offiziellen Paketquellen installiert werden
$ sudo apt-get install netdiscover
Anschließend muss es als root gestartet werden und gibt alle Netzwerkgeräte inklusive ihrem Hersteller aus.
$ sudo netdiscover | grep Raspberry
192.168.0.126 b8:27:eb:72:a5:3c 1 60 Raspberry Pi Foundation
SSH-Verbindung aufbauen
Standardmäßig existiert unter Raspbian der Benutzernamepi mit dem Passwortraspberry.
Mit diesen Informationen ist es nun möglich sich nun per SSH auf dem Raspberry Pi anzumelden.
$ ssh pi@192.168.0.126
Falls die von mir in Sichere SSH Konfiguration vorgestellte Client SSH Konfiguration verwendet wird kommt wird beim Verbindungsaufbau nachfolgende Fehlermeldung angezeigt
The authenticity of host '192.168.0.126 (192.168.0.126)' can't be established.
ED25519 key fingerprint is SHA256:WNOAK/cDizRRBkENqcHlCXiXCr5FXQJQhw3V5sOUVpU.
> Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.126' (ED25519) to the list of known hosts.
Permission denied (publickey,password).
Dies liegt daran, dass standardmäßig keine Passwörter zur Anmeldung an SSH Servern erlaubt sind. Daher muss wie im Beitrag SSH Authentifizierung über Passworte für einzelne Verbindungen erlauben beschrieben der Parameter PasswordAuthentication auf yes gesetzt werden um die Anmeldung über Passwörter für diese Verbindung wieder bzw. temporär zu erlauben.
Passwort ändern
Beim Einloggen über SSH wird eine Warnung angezeigt, falls der Benutzer pi noch das Standardpasswortraspberry nutzt.
$ ssh pi@192.168.0.126
> pi@192.168.0.126's password:The programs included with the Debian GNU/Linux system are free software;the exact distribution terms for each program are described in theindividual files in /usr/share/doc/*/copyright.Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extentpermitted by applicable law.Last login: Mon May 1 17:17:04 2017 from 192.168.1.137SSH is enabled and the default password for the 'pi' user has not been changed.This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password.
Diese Warnung sollte ernst genommen werden. Mittels des Befehlt passwdkann das Passwort des Benutzers einfach auf ein sicheres geändert werden. Bevor das neue Passwort angegeben werden kann muss zur Bestätigung zuerst das alte eingegeben werden. Die Ausgabe sollte wie nachfolgend aussehen.
$ passwd
Changing password for pi.> (current) UNIX password:> Enter new UNIX password:> Retype new UNIX password:passwd: password updated successfully
Danach sollte die Warnung beim Verbinden nicht mehr angezeigt werden.
System aktualisieren
Bevor der Raspberry Pi weiter eingerichtet wird sollten zuerst alle Pakete aktualisiert werden. Dies kann einfach mit folgenden beiden Befehlen geschehen.
$ sudo apt-get update
$ sudo apt-get upgrade
Zeitzone anpassen
Standardmäßig wird UTC als Zeitzone in Raspbian verwendet. Die Zeitzone kann ganz einfach über das Tool raspi-configangepasst werden.
Um die aktuell eingestellte Zeitzone auszugeben kann der Befehl date verwendet werden.
$ date
Sat 26 Aug 07:41:35 UTC 2017
Zum Ändern der Zeitzone kann raspi-config verwendet werden.
$ sudo raspi-config
In dem nun Grafischen Menü muss zuerst 4 Localisation Options ausgewählt und mit Enter bestätigt werden
Jetzt muss I2 Change Timezone ausgewählt und mit Enter bestätigt werden.
Als Geographic Area nun Europeauswählen und bestätigen.
Im nächsten Menü als Time ZoneBerlinauswählen.
Nach dem Beenden von raspi-config (z.B. über Esc) wird die neue Zeitzone angezeigt.
Current default time zone: 'Europe/Berlin'
Local time is now: Sat 26 Aug 09:42:52 CEST 2017.
Universal Time is now: Sat 26 Aug 07:42:52 UTC 2017.
Nun kann nochmals mittels des dateBefehls überprüft werden das die Zeitzone auch angepasst wurde.
$ date
Sat 26 Aug 09:43:08 CEST 2017
WLAN Kanäle konfigurieren
Pro Region bzw. Land sind andere WLAN Kanäle erlaubt. Daher sollte das WLAN Land auch gesetzt werden. Dazu wieder raspi-config starten
$ sudo raspi-config
Wie beim Einstellen der Zeitzone wieder 4 Localisation Options im ersten Menü auswählen und mit Enter bestätigen
Jetzt muss I4 Change Wi-Fi Country ausgewählt werden.
In der Liste der Länder nun DE Germanyauswählen.
Abschließend wird noch eine Bestätigung angezeigt.
Damit die Änderung des WLAN Lands übernommen werden muss der Raspberry Pi einmal neu gestartet werden. Dies wird beim Beenden von raspi-config über Finish im Hauptmenu automatisch angeboten.
Alternativ kann auch nachfolgender Befehl im Terminal genutzt werden
$ sudo reboot
Hostname ändern
Es sollte auch noch der Name unter dem der Raspberry Pi im Netzwerk sichtbar ist, der sogenannte Hostname, angepasst werden. Dies kann auch wieder ganz einfach über raspi-config erledigt werden.
$ sudo raspi-config
Diesmal muss 2 Hostname im Hauptmenü ausgewählt werden
Direkt danach wird ein Hinweis angezeigt welche Zeichen im Hostnamen erlaubt sind
Nach dem Bestätigen kann der neue Wunschhostname eingegeben werden (1). Anschließend muss der Dialog mit OK (2) bestätigt werden.
Damit die Änderung des Hostnamenswirksam werden muss der Raspberry Pi einmal neu gestartet werden. Dies wird beim Beenden von raspi-config über Finish im Hauptmenu automatisch angeboten.
Alternativ kann auch nachfolgender Befehl im Terminal genutzt werden
$ sudo reboot
SSH Konfigurieren
Anschließend kann wie im Beitrag SSH Authentifizierung mittels Public-Keys beschrieben die SSH Anmeldung auf Public-Keys umgestellt werden. Anschließend sollte auch die SSH Konfiguration des Raspberry Pi’s wie im Beitrag Sichere SSH Konfiguration beschrieben abgesichert werden.
Aliase setzen
Ich verwende auf allen meinen Systemen bestimmte Aliase im Terminal. Das definieren der Aliase in Raspbian ist identisch mit dem in Ubuntu 16.04. Daher kann einfach meine Anleitung im Beitrag Terminal Aliase in Linux verwendet werden.
Nützliche Tools installieren
Es gibt einige Tools die ich immer wieder verwende die aber nicht alle standardmäßig installiert sind. Um sie nicht jedes Mal bei Bedarf installieren zu müssen installiere ich sie immer schon beim Einrichten des Systems. Meine Tools habe ich im Beitrag Nützliche Tools für Ubuntu Linux 16.04 Server beschrieben, welcher so auch für Raspbian gilt.
Wenn ein Raspberry Pi beispielsweise als VPN Server verwendet werden soll, ist es sinnvoll ihm im lokalen Netzwerk eine feste IP-Adresse zu geben. So ist sichergestellt, dass er immer die gleiche IP-Adresse hat, auf welche der Port weitergeleitet wird.
Raspbian basiert auf Debian. Daher ist auch in Raspbian standardmäßig der DHCP Client Daemon (DHCPCD) aktiviert, welcher die IP-Adresse zuweist. Um eine Feste IP-Adresse zuzuweisen muss nur die Datei /etc/dhcpcd.conf angepasst werden. Diese einfach als root öffnen.
$ sudo nano /etc/dhcpcd.conf
In der Konfigurationsdatei muss am Ende die feste IP-Adresse definiert werden. Für Ethernet sind die Zeilen 2-8 und für WLAN die Zeilen 10-16 im Beispiel relevant.
Interface definiert die Netzwerkschnittstelle für welche die IP-Adresse festgelegt wird (eth0 = Ethernet, wifi0 = WLAN)
static ip_address legt die gewünschte IP-Adresse fest. Die /24 am Ende muss stehen bleiben, da sie die Subnet Maske definiert (/24 ist äquivalent zu 255.255.255.0).
static routers ist die IP-Adresse des Gateways (normalerweise der Router)
static domain_name_servers ist die IP-Adresse des DNS Servers (normalerweise der Router)