W poprzednich częściach kursu opisaliśmy jak na kilka sposobów można się połączyć z RPi. Czas wykorzystać naszą zdalną komunikację!
Pora na poznanie trzech narzędzi, dzięki którym praca z Raspberry Pi jest wygodniejsza. Od teraz z interfejsu graficznego będą mogły skorzystać również te osoby, które nie mogły wykonać ćwiczeń wymagających monitora z HDMI.
Podłączanie do Raspberry Pi myszki, klawiatury i zewnętrznego monitora (patrz: 4. część kursu), to ciekawe, ale mało praktyczne rozwiązanie. Sprawdza się właściwie tylko wtedy, gdy chcemy traktować malinkę jak zwykły komputer PC. Niewątpliwą zaletą tego rozwiązania jest jednak dostęp do interfejsu graficznego. Komunikacja przez UART (patrz: 5. część kursu) może nas uratować w wielu sytuacjach, ale przesyłanie informacji jest stosunkowo wolne.
Właśnie dlatego najlepiej przyzwyczaić się do pracy przez sieć (patrz: 6. część kursu). Nie potrzebujemy dodatkowego sprzętu, malinka może być gdzieś schowana, a i tak możemy na niej pracować tak, jakby była obok nas.
Zanim przejdziesz dalej upewnij się, że Twoje Raspberry Pi jest włączone i podłączone do sieci. Włączony powinien być również dostęp przez SSH. Wszystkie te informacje zostały opisane w poprzedniej części kursu.
Zdalny pulpit na Raspberry Pi - VNC
Praca w trybie tekstowym ma dużo zalet. Jednak dla wielu osób wygodniej będzie oswoić się z pracą zdalną, jeśli zaczniemy od trybu graficznego. Zyskają na tym również osoby, które nie miały wcześniej dostępu do monitora z HDMI.
Z pomocą przychodzi nam popularny protokół VNC (ang. Virtual Network Computing). Dzięki niemu możliwe będzie przesłanie obrazu z Raspberry Pi do naszego komputera. Będzie to ten sam interfejs graficzny, który poprzednio trafiał na monitor. Mówiąc inaczej zamienimy ekran PC (lub laptopa) w wirtualny ekran malinki.
Gotowe zestawy do kursów Forbota
Komplet elementów Gwarancja pomocy Wysyłka w 24h
Elementy niezbędne do wykonania wszystkich ćwiczeń z kursu podstaw Rasberry Pi dostępne są w formie gotowych zestawów!
Masz już zestaw? Zarejestruj go wykorzystując dołączony do niego kod. Szczegóły »
Aktywacja VNC
Najpierw musimy zalogować się do RPi w trybie tekstowym i aktywować VNC. Wydajemy znane już nam polecenie:
sudo raspi-config
Dla przypomnienia: sudo to odpowiednik opcji "uruchom jako administrator" znanej z Windowsa. Parametrem tego polecenia jest to, co chcemy uruchomić, czyli raspi-config.
Tym razem interesuje nas pozycja Interfacing Options. Wybieramy ją strzałkami, zatwierdzamy enterem i przechodzimy do opcji VNC:
Lista dostępnych opcji.
Wybór VNC.
Ostatni krok to potwierdzenie, że chcemy uruchomić dostęp przez VNC. Strzałkami poruszamy się tak, aby podświetlić na czerwono przycisk Yes i klikamy enter. Na koniec wyświetli się ekran potwierdzający uruchomienie dostępu przez VNC.
Wybór odpowiedniej opcji.
Potwierdzenie zmiany ustawień.
Zanim wyjdziemy z opcji warto jeszcze dostosować rozdzielczość ekranu. W menu głównym wybieramy opcję Advanced Options, a następnie Resolution:
Lista dostępnych rozdzielczości.
Domyślna rozdzielczość to 720x480, co dobrze sprawdza się w przypadku małych ekranów LCD. Wartość ta nie pasuje jednak do rozdzielczości typowych monitorów. Co najważniejsze, niektóre aplikacje graficzne, przy zbyt małym rozmiarze okna, mogą być "ucinane". Jak widać poniżej, przy małej rozdzielczości ekranu nawet wybór opcji w menu będzie utrudniony:
Nie warto też przesadzać ze zbyt dużą rozdzielczością, ponieważ może to wprowadzić problemy ze zdalną pracą (będą duże opóźnienia). Dobrze zacząć od środkowej opcji, czyli: 1280x720px.
Wybór rozdzielczości Raspberry Pi.
Potwierdzenie wybrania trybu DMT 85.
Po zatwierdzeniu nowego wyboru wychodzimy z raspi-config, wybierając opcję Finish na głównym ekranie. Program zaproponuje restart malinki, na co się zgadzamy.
Wybór opcji Finish.
Zgoda na restart RPi.
Instalacja klienta VNC
Gdy Raspberry Pi się restartuje możemy zająć się przygotowaniem naszego PC. Teoretycznie dowolny klient VNC powinien działać poprawnie, ale praktyka niestety pokazuje co innego. Aby uniknąć problemów warto skorzystać z zalecanego RealVNC.
Warto wspomnieć, że jest on dostępny dla różnych systemów operacyjnych, nie tylko Windows. Dzięki temu możemy bez problemu pracować zdalnie na malince z poziomu Linuksa, Mac OS X, a nawet telefonu komórkowego.
Mnogość dostępnych platform.
Program jest prosty w obsłudze. Po jego uruchomieniu w górnym pasku wpisujemy IP malinki:
Pasek do wpisania adresu IP.
Naciskamy enter, rozpocznie się logowanie, podczas którego będziemy musieli potwierdzić, że na pewno chcemy połączyć się z tym urządzeniem:
Logowanie…
Potwierdzenie połączenia.
Po chwili na komputerze wyświetli się "pulpit" Raspberry Pi. Całość będzie działała tak samo jak odbywało się to przy bezpośrednim podłączeniu do malinki. Metoda ta ma pewne ograniczenia, ale wrócimy do tego w dalszych częściach kursu.
Pulpit RPi widziany przez VNC.
Korzystanie z programów przez VNC.
Trzy, widoczne różnice podczas pracy przez VNC to:
niebieska ikonka VNC (w prawym górnym rogu RPi),
wysuwany pasek (u góry ekranu) z opcjami RealVNC,
ewentualne opóźnienia (przez słabe połączenie sieciowe).
Dodatkowy pasek opcji VNC.
Od tej chwili możemy pracować zdalnie na Raspberry Pi wykorzystując nasz komputer. Działa monitor, klawiatura oraz myszka. Nie musimy więc podłączać do malinki plątaniny kabli. Niestety praca nawet w sieci lokalnej powoduje pewne opóźnienia.
Przy okazji wychodzi duża zaleta sieci przewodowej. W przypadku WiFi opóźnienia będą mocniej widoczne.
Zdalny dostęp do plików - SCP
Często musimy kopiować pliki między komputerami. Możemy w tym celu użyć dysk sieciowy lub możemy "biegać" do Raspberry Pi z pendrivem. Dużo szybciej będzie to zrobić kopiując dane bezpośrednio między komputerami. Do tego celu wykorzystamy protokół SCP (secure copy).
Dane kopiowane za pomocą SCP są szyfrowane, więc ich treść jest bezpieczna podczas przesyłana przez sieć!
Wystarczy pobrać i zainstalować darmowy program WinSCP:
Popularny program WinSCP.
Po uruchomieniu programu zobaczymy okno do logowania. W pole Nazwa hosta wpisujemy IP, niżej podajemy nazwę użytkownika i hasło. Jako protokół powinniśmy mieć wybrane SFTP, a numer portu pozostaje taki sam jak w przypadku SSH, czyli 22. Po rozpoczęciu logowania zostaniemy poproszeni o potwierdzenie, czy chcemy połączyć się z tym komputerem:
Okno logowania.
Potwierdzenie chęci połączenia.
Po chwili uzyskamy dostęp do plików z Raspberry Pi. Po lewej stronie widoczny są zasoby PC, a po prawej pojawia się drzewo katalogów z malinki. Od teraz możemy przeciągać, kopiować i podglądać pliki w wygodny sposób:
Dostęp do plików na Raspberry Pi.
Struktura plików
Katalog domowy, czyli domyślny po zalogowaniu do Raspberry, to /home/pi. W katalogu /home zapisywane są katalogi użytkowników, a pi to nazwa domyślnego użytkownika. W Linuksie używane są odwrotne ukośniki niż w Windows, więc zamiast c:\Użytkownicy\pi mamy /home/pi.
Katalog główny to sam ukośnik / (nazywany jest korzeniem, czyli root-em).
Sama obsługa programu WinSCP jest prosta i intuicyjna, więc nie będziemy się o niej rozpisywali. Warto tylko zwrócić uwagę na dwie charakterystyczne cechy systemu plików Linuksa. Po pierwsze rozróżniane są małe i duże litery. Czyli forbot.txt i Forbot.txt to różne pliki, które mogą być jednocześnie obecne:
Dwa różne pliki.
Druga sprawa to uprawnienia. Dostęp do pliku określane jest przez trzy flagi:
prawo do odczytu (r - read),
prawo do zapisu (w - write),
prawo do uruchamiania (x - execute).
Prawa dostępu mogą być definiowane dla właściciela, grupy oraz innych użytkowników. Do tego tematu wrócimy jeszcze w przyszłości.
Podgląd uprawnień.
Klucze RSA - koniec z podawaniem hasła
Przy omawianiu instalacji systemu przez sieć pokazaliśmy jak połączyć się z malinką używając programu PuTTy. Teraz pora na udoskonalenie tej metody - dostęp bez konieczności podawania hasła. Ze strony projektu PuTTy pobieramy program puttygen.
Okno programu PuTTY Keg Generator.
Nie musimy zmieniać żadnych opcji. Wystarczy, że naciśniemy Generate. Wygenerowanie kluczy trochę trwa. Program prosi nas o ruszanie myszką - dzięki temu wprowadzony jest dodatkowy element losowości do generowanych kluczy.
Generowanie pary kluczy.
Po chwili nasz klucz, a dokładniej mówiąc para kluczy, są gotowe:
Wygenerowane klucze.
Czym jest RSA?
Szyfrowanie RSA (Rivest Shamir Adleman) wykorzystuje parę kluczy: klucz publiczny i prywatny. Klucz publiczny może być ogólnie dostępny, natomiast klucz prywatny powinien być znany tylko osobom, które mają mieć dostęp do malinki.
Klucze są ze sobą powiązane i nie będą pasowały do innych!
Umieścimy klucz publiczny na malince, a prywatny zapiszemy na komputerze. Dzięki temu, gdy będziemy łączyć się z malinką PuTTy wykorzysta nasz klucz prywatny zamiast hasła. Takie rozwiązanie jest nawet bezpieczniejsze od hasła - nikt nie podpatrzy klawiszy wciskanych na klawiaturze.
Oczywiście warunkiem bezpieczeństwa jest to, że nikt nie ukradnie nam z komputera klucza prywatnego!
Aby zapisać klucz prywatny przyciskamy Save private key. Jeśli nie podaliśmy hasła do klucza pojawi się ostrzeżenie - możemy je zignorować, w końcu to tylko klucz do malinki, a haseł chcieliśmy uniknąć. Plik z kluczem ma rozszerzenie .ppk, zapisujemy go w znanym, bezpiecznym miejscu na dysku. Jest to plik tekstowy (możemy w notatniku zobaczyć jak wygląda).
Teraz zapisujemy klucz publiczny, tutaj nie musimy martwić się bezpieczeństwem. Podobnie jak poprzednio jest to plik tekstowy. Interesuje nas klucz widoczny w górnej części okna programu. Zaczyna się od ssh-rsa i ma postać przykładowo:
Klucz musimy skopiować na malinkę do pliku /home/pi/.ssh/authorized_keys. Uruchamiamy WinSCP i przechodzimy do katalogu domowego (/home/pi). Jeśli wcześniej nie używaliśmy kluczy do łączenia przez ssh musimy utworzyć nowy katalog o nazwie .ssh (kropka na początku oznacza katalog ukryty). Klikamy Prawym Przyciskiem Myszy > Nowy > Katalog, jako nazwę wpisujemy ".ssh" i zatwierdzamy operację.
Stworzony katalog jest ukryty, więc domyślnie go nie widać!
Aby WinSCP pokazywało nam ukryte katalogi należy wejść w Opcje > Preferencje > Panele i zaznaczyć odpowiednią "Pokaż ukryte katalogi":
Widok ukrytych katalogów.
Po zatwierdzeniu ustawień pojawią się nowe, wcześniej ukryte, katalogi. Wchodzimy w stworzony przez nas .ssh. Teraz tworzymy nowy plik, nadajemy mu nazwę authorized_keys, następnie wklejamy dane wygenerowane wcześniej:
Plik z wygenerowanym kluczem.
Gotowy plik z kluczem przenosimy do utworzonego wcześniej katalogu:
Plik z kluczem przeniesiony na Raspberry Pi.
Teraz wystarczy, że połączymy się z malinką używając PuTTy oraz naszego klucza prywatnego. Podstawowe dane połączenia (nazwa hosta, port itd.) są identyczne jak dla połączenia z hasłem.
Musimy tylko wybrać opcję Connection > SSH > Auth i kliknąć Browse przy polu Private key file for authentication. Wskazujemy tam zapisany wcześniej klucz prywatny. Na zakończenie w zakładce Session warto zapisać ustawienia. Wpisujemy nazwę i klikamy przycisk Save.
Wybór klucza prywatnego.
Zapisanie ustawień.
Od teraz wystarczy dwa razy kliknąć na zapisaną nazwę. Otworzy się terminal, w którym zostaniemy poproszeni o podanie nazwy użytkownika. Hasło nie będzie już potrzebne:
Logowanie bez hasła.
Podsumowanie
W tej części zobaczyliśmy jak pracować używając zdalnego pulpitu poprzez VNC, nauczyliśmy się kopiować pliki przez SCP oraz poznaliśmy podstawy kryptografii z kluczem publicznym opartej na RSA. Oczywiście taka metoda logowania jest najwygodniejsza, gdy mamy ustawione trudne hasło. Wtedy nie musimy za każdym razem wpisywać długiego ciągu znaków.
Czy wpis był pomocny? Oceń go:
Średnia ocena 4.9 / 5. Głosów łącznie: 244
Nikt jeszcze nie głosował, bądź pierwszy!
Artykuł nie był pomocny? Jak możemy go poprawić? Wpisz swoje sugestie poniżej. Jeśli masz pytanie to zadaj je w komentarzu - ten formularz jest anonimowy, nie będziemy mogli Ci odpowiedzieć!
Dzięki materiałom z tej lekcji każdy może już cieszyć się interfejsem graficznym. W kolejnym odcinku kursu zajmiemy się zmorą początkujących, czyli pracą z interfejsem tekstowym. Pora poznać podstawy "prawdziwego Linuksa" w praktyce!
Dołącz do 20 tysięcy osób, które otrzymują powiadomienia o nowych artykułach! Zapisz się, a otrzymasz PDF-y ze ściągami (m.in. na temat mocy, tranzystorów, diod i schematów) oraz listę inspirujących DIY na bazie Arduino i Raspberry Pi.
Dołącz do 20 tysięcy osób, które otrzymują powiadomienia o nowych artykułach! Zapisz się, a otrzymasz PDF-y ze ściągami (m.in. na temat mocy, tranzystorów, diod i schematów) oraz listę inspirujących DIY z Arduino i RPi.
Trwa ładowanie komentarzy...