No to do dzieła. Zainstalujemy specjalną dystrybucję Linuxa przygotowaną dla mini-komputerów Raspberry Pi, którą wykorzystamy na potrzeby uruchomienia naszego serwera WWW. Instalację i konfigurację wykonamy przez sieć LAN z połączeniem przez kabel sieciowy. Nie będziemy używać monitora, klawiatury oraz myszki.
Co będziemy potrzebowali:
- komputer PC z systemem Windows,
- pobrany obraz systemu Raspbian Stretch Lite ze strony projektu: https://www.raspberrypi.org/downloads/raspbian/
(wersja lite pozbawiona jest sporej ilości programów, których w naszym przypadku nie potrzebujemy), - program Etcher potrzebny do nagrania obrazu systemu na kartę microSD (wystarczy wersja portable): https://etcher.io/,
- czytnik kart SD oraz przejściówka microSD na SD,
- program PuTTY – klient SSH: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html,
- opcjonalnie program WinSCP – zdalny dostęp do plików: https://winscp.net/eng/download.php,
- oczywiście najważniejsze: Raspberry Pi z kablem Ethernet.
Uwaga!
Jeszcze nie podłączamy naszego Raspberry Pi do sieci LAN oraz do zasilania.
Przygotowanie karty SD z systemem RasPbian
Rozpakowujemy archiwum ZIP z obrazem systemu Raspbian do dowolnego folderu na dysku twardym naszego komputera, następnie wkładamy kartę SD do czytnika i podłączamy do naszego komputera PC (karty nie musimy specjalnie formatować, wszystkie niezbędne czynności wykona Etcher.
Uwaga!
Wszystkie pliki na karcie SD zostaną skasowane.
Uruchamiamy program Etcher (z uprawnieniami administratora) i wskazujemy lokalizację naszego obrazu systemu (plik *.iso) przyciskiem Select image, a następnie przyciskiem Select drive wskazujemy naszą kartę SD.
Klikamy w przycisk Flash – następuje proces przygotowania naszej karty SD jako dysku dla Rapsberry Pi. Przebieg procesu pokazany jest na powyższych zrzutach ekranu.
Uwaga!
Mogą pojawić się okna systemowe Windows z informacją o konieczności wykonania procesu formatowania dysku.
Ignorujemy te komunikaty przyciskiem Anuluj.
Zamykamy program Etcher i wyciągamy, a następnie ponownie wkładamy naszą kartę SD do czytnika (ignorując komunikaty o konieczności formatowania dysku). Na naszej karcie pamięci mamy dostępną dla Windows partycję rozruchową boot. Na tej partycji musimy utworzyć nowy, pusty plik o nazwie ssh bez żadnego rozszerzenia.
Ważne!
W celu poprawnego utworzenia takiego pliku musimy mieć w naszym systemie operacyjnym na PC
włączone pokazywanie rozszerzeń wszystkich plików.
To wszystko. Właśnie przygotowaliśmy „dysk twardy” z systemem operacyjnym Raspbian dla naszego mini-komputera Raspberry Pi. Możemy włożyć kartę microSD do czytnika w naszej „malince”, podłączyć kabel sieciowy do domowego routera oraz włączyć zasilanie. Nasza „malinka” zacznie uruchamiać system operacyjny i po chwili jest gotowa do pracy.
Połączenie przez SSH i pierwsze zalogowanie
Następną czynność jaką musimy wykonać, to sprawdzenie jaki adres IP został przypisany naszemu urządzeniu. Można to zrobić na kilka sposobów. Możemy zalogować się do naszego routera i sprawdzić, jaki adres IP został przydzielony naszej „malince”, możemy wykorzystać oprogramowanie do skanowania adresów w naszej sieci domowej. Jednak najprostszym rozwiązaniem jest uruchomienie wiersza poleceń (cmd) na naszym PC i wpisanie komendy arp -a. Zobaczymy listę znanych urządzeń, a wśród nich powinna być nasza „malinka”, której adres MAC (Physical Address) zaczyna się od ciągu b8-27-eb. Z kolumny Internet Address odczytujemy IP naszego Raspberry.
Znamy już adres IP naszej „malinki”, więc przyszedł czas na instalację (jeśli jeszcze tego nie wykonaliśmy) i uruchomienie klienta SSH – programu PuTTY. W oknie Host name (or IP address) wpisujemy adres IP naszego mini-komputera. W oknie Saved sessions możemy nadać nazwę naszego połączenia SSH do serwera i zapisać ją przyciskiem Save. Warto to zrobić, gdyż do danej sesji możemy przypisać mnóstwo różnych ustawień naszego klienta SSH. Ja np. zmieniam sobie czcionkę na bardziej mi pasującą 😀 .
Po zapisaniu naszej konfiguracji klikamy w przycisk Open i łączymy się zdalnie z naszym mini-komputerem. Przy pierwszym połączeniu zobaczymy ostrzeżenie dotyczące nieznanego urządzenia. Musimy wyrazić zgodę na połączenie. Jeśli widzimy ekran jak poniżej, to mamy pełen sukces. Możemy zacząć całkowicie zdalnie konfigurować naszego Raspberry Pi.
Domyślny login to pi, a hasło raspberry. Przy wprowadzaniu hasła nie pojawiają się żadne znaki (brak gwiazdek maskujących hasło). Jest to normalne zachowanie w przypadku systemów linuxowych. Po wprowadzeniu poprawnego hasła zobaczymy linię poleceń, czyli tzw. shell naszej „malinki”. Jak widać od razu otrzymujemy ostrzeżenie, że dostęp przez SSH jest włączony, a my korzystamy z domyślnego hasła. Pierwszą czynnością jest więc zmiana hasła. Wykonujemy to poleceniem
passwd
Podstawowa konfiguracja: raspi-config
Po zmianie hasła należy wykonać podstawowe ustawienia. Wpisujemy komendę
sudo raspi-config
Pojawi się okno programu konfiguracyjnego przygotowanego specjalnie dla Raspberry Pi:
W Raspberry Pi Software Configuration Tool ustawiamy przede wszystkim:
- (2) Network Options > (N1) Host Name – możemy zmienić nazwę naszego mini-komputera,
- (3) Boot Options > B1 Desktop / CLI > (B1) Console – tryb uruchamiania naszego mini-komputera,
- (4) Localisation Options > (I1) Change Locale – dodajemy ustawienia lokalne pl_PL.UTF-8 UTF-8 i wybieramy to ustawienie jako domyślne,
- (4) Localisation Options > (I2) Change Timezone – wybieramy właściwą strefę czasową (dla Polski jest to Europe / Warsaw),
- (4) Localisation Options > (I4) Change Wi-Fi Country – wybieramy PL Poland,
- (8) Update – sprawdzamy dostępność aktualizacji programu raspi-config.
Po tej konfiguracji wychodzimy z programu za pomocą przycisku Finish. Program może poinformować nas o konieczności wykonania ponownego uruchomienia systemu. Zgadzamy się na ten krok. Jeśli taki komunikat się nie wyświetli, dobrze wykonać ponowne uruchomienie samodzielnie poleceniem
sudo reboot
Po odczekaniu ok. 1 minuty możemy ponownie połączyć się z naszą „malinką” klientem SSH – PuTTY.
Aktualizacja pakietów w systemie Raspbian
Aby zaktualizować nasz system Raspbian wpisujemy następujące polecenia:
sudo apt-get update
sudo apt-get upgrade
Cała operacja może potrwać nawet kilkanaście minut w zależności od szybkości naszego łącza Internetowego. Oczywiście chęć aktualizacji musimy potwierdzić klawiszem y (klawiszem t w przypadku domyślnego j. polskiego). Po aktualizacji wykonujemy restart systemu poleceniem
sudo reboot
Konfiguracja czasu
Nasza „malinka” nie posiada zegara czasu rzeczywistego (RTC), więc dobrze jest skonfigurować system, aby synchronizował czas z serwera NTP w sieci Internet. W konsoli SSH wpisujemy komendę
sudo apt-get install rdate
i czekamy chwilę na zainstalowanie niezbędnych pakietów, a następnie wpisujemy
sudo rdate -s ntp.task.gda.pl
Parametr -s powoduje zapisanie serwera ntp.task.gda.pl jako głównego serwera synchronizacji czasu dla naszego mini-komputera. Sprawdzenie aktualnego czasu możemy wykonać komendą
date
Klucze SSH, czyli dostęp do Raspberry Pi bez użycia hasła
Wykonując częste połączenia SSH, każdorazowe wpisywanie hasła może być irytujące. Istnieje jednak proste i bardzo wygodne rozwiązanie tego problemu. Zanim przejdziemy jednak do opisu jak wygenerować i używać kluczy SSH, kilka słów o samych kluczach. W największym uproszczeniu klucze SSH działają tak samo jak PGP/GPG, czyli tworzymy komplet kluczy (prywatny i publiczny). Dostęp do klucza prywatnego możemy mieć tylko my. Nie możemy go nikomu przekazać ani udostępnić. To dzięki niemu możemy rozszyfrować np. zaszyfrowaną korespondencję e-mail, więc nie możemy go nikomu dać. Klucz publiczny, to ten który przekazujemy innym, żeby mogli wysłać nam coś zaszyfrowanego. Podsumowując, klucz prywatny zatrzymujemy dla siebie, a klucz publiczny udostępniamy innym.
Wygenerowanie kluczy SSH wykonujemy programem PuTTYgen. Uruchamiamy program i klikamy przycisk Generate. W celu losowego generowania znaków potrzebnych do stworzenia pary kluczy poruszamy kursorem po oknie aplikacji. Po wygenerowaniu kluczy zapisujemy nasz klucz prywatny na dysku komputera PC przyciskiem Save private key. Pomijamy wprowadzenie hasła do klucza prywatnego, gdyż w systemie Windows taka opcja będzie nam tylko przeszkadzała. Z okna Public key… kopiujemy do schowka klucz publiczny i wklejamy go np. w Notatniku (polecam jednak używanie np. programu Notepad++ zamiast systemowego Notatnika). Program PuTTYgen możemy już zamknąć. Natomiast teraz uruchamiamy PuTTY. Ładujemy naszą konfigurację sesji SSH przyciskiem Load, a następnie w drzewku konfiguracyjnym po lewej stronie rozwijamy sekcję SSH i klikamy w podsekcję Auth. Klikamy w przycisk Browse… przy okienku Private key file for authentication i wybieramy nasz klucz prywatny zapisany na dysku naszego PC.
Następnie przechodzimy do sekcji Session, wybieramy naszą konfigurację sesji i zapisujemy nowe ustawienia przyciskiem Save. Otwieramy naszą sesję i logujemy się użytkownikiem pi oraz wcześniej ustanowionym hasłem. W konsoli SSH po prowadzeniu nazwy użytkownika powinniśmy zobaczyć komunikat: Server refused our key. Teraz pozostaje nam przesłać na nasze Raspberry Pi skopiowany wcześniej klucz publiczny. W tym celu łączymy się przez PuTTY i wpisujemy poniższe polecenia.
– tworzymy folder dla kluczy publicznych:
install -d -m 700 ~/.ssh
– uruchamiamy edytor tekstowy Nano z opcją utworzenia pliku authorized_keys we wcześniej utworzonym folderze .ssh:
nano ~/.ssh/authorized_keys
W oknie edytora wklejamy nasz klucz publiczny i zapisujemy plik (Ctrl + o) i Enter, a następnie zamykamy edytor (Ctrl + x). Poprawność konfiguracji sprawdzamy zamykając sesję poleceniem
logout
Następnie logujemy się ponownie do naszej „malinki”. Po wpisaniu nazwy użytkownika nie jesteśmy już pytani o hasło.
Uwaga!
Aby skopiować dane ze schowka w oknie sesji terminalowej nie używamy powszechnie znanego skrótu Ctrl + v,
tylko klikamy prawym klawiszem myszy.
Na koniec tej części sprawdzamy temperaturę naszego RPi
Aby sprawdzić temperaturę procesora wpisujemy komendę
/opt/vc/bin/vcgencmd measure_temp