Lekce 2 - Raspberry Pi - Připojení pomocí SSH a VNC
V minulé lekci, Úvod do Raspberry Pi, jsme si Rasbperry Pi představili a nainstalovali na něj operační systém.
Dnes se podíváme trochu blíže na práci s Raspberry Pi a to zejména tak, že se k ní připojíme z velkého PC (případně jiného zařízení s obrazovkou), abychom k ní stále nemuseli připojovat periferie. Ovládání maliny z PC si ukážeme jak přes SSH terminál, tak graficky přes VNC.
Pokud nemáte zkušenosti s operačním systémem Linux, doporučuji se podívat na kurz Základy linuxu. Na malině máme Linux Raspbian a s ním budeme neustále pracovat. V kurzu si sice všechny kroky podrobně popíšeme, ale se základní znalostí Linuxu vám vše půjde mnohem rychleji a stejně se vám bude velmi hodit.
SSH
SSH je protokol, který slouží pro šifrovanou komunikaci mezi dvěma PC. Tato komunikace se nejčastěji odehrává čistě v příkazové řádce/terminálu a umožňuje vzdálené ovládání jednoho PC z druhého. Pro Windows se k této SSH komunikaci používá program PuTTY. Stejný program se dá použít i ve většině linuxových distribucí. Na Linuxu se ale spíše přímo instaluje SSH klient a připojuje na SSH přes terminál.
Instalace PuTTY
Putty nainstalujeme na PC s Windows, ze kterého budeme Raspberry Pi ovládat. Pro Windows stačí pouze stáhnout program na https://www.putty.org/ a dále není nutno nic instalovat. Pokud máte Linux a chtěli byste PuTTy vyzkoušet, stačí napsat do terminálu příkaz:
sudo apt-get install putty
Což následně spustí instalaci.
Po otevření aplikace se nám otevře podobné okno:
Než budeme pokračovat, je samozřejmě třeba na Raspperry Pi nastavit, abychom se k ní mohli připojit.
Povolení SSH na Raspberry Pi
První, co musíme udělat, než začneme, je nastavit našeho
root
uživatele v Raspbianu.
Heslo root
Root uživatel má ty nejvyšší pravomoci v jakémkoli počítači s Linuxem. Zapneme si terminál kliknutím na jeho ikonku na liště:
A napíšeme příkaz:
sudo passwd root
Po zadaní hesla uživatele se objeví žádost o nové heslo a jeho potvrzení.
Jestli náš root
uživatel funguje si můžeme vyzkoušet
pomocí příkazu:
su
Zadáme nově vytvořené heslo a jsme za něj přihlášení. Pozor, v tuto chvíli můžeme systém nesprávným zacházením poškodit.
Bezpečnější přístup, než se přihlašovat za
superuživatele, je psát sudo
před každý příkaz v terminálu,
který chceme spustit jako správce, aby nenastal problém s oprávněním.
Kontrola sítě
U Raspberry Pi i u našeho počítače s PuTTy zkontrolujeme, zda jsou obě zařízení připojena ke stejné síti. Jinak spolu nebudou moci komunikovat. Když nejsme na Raspberry připojeni, stačí kliknout na ikonu dvou šipek a zde najít naši WiFi:
Případně připojit Raspberry přes ethernetový kabel.
Povolení SSH serveru
Pro povolení SSH serveru nám bude stačit jediný příkaz. Do terminálu napíšeme:
sudo systemctl enable ssh
Tato akce se dá také provést pomocí grafického prostředí v Preferences -> Raspberry Pi Configuration -> Interfaces. Zde již stačí jen zakliknout SSH: Enabled:
Start SSH a lehká konfigurace
Raspberry restartujeme. Pak budeme již mít SSH povolené. Znovu zapneme terminál a zadáme příkaz:
sudo systemctl start ssh
Tento příkaz zapne SSH server, na který se budeme s naším SSH klientem připojovat.
Konfigurace SSH
SSH nemá kvůli bezpečnosti na svém serveru povoleno přihlášení
root
uživatele. My si ho však povolíme, protože chceme malinu z
PC plně ovládat. Ukážeme si přitom, jak konfigurovat SSH. Zadáme
příkaz:
sudo nano /etc/ssh/sshd_config
nano
je v Linuxu předinstalovaná aplikace podobná textovému
editoru, ale v příkazové řádce se ovládá pomocí šipek.
Najdeme si řádek s textem #PermitRootLogin
, smažeme
#
a cokoli za tím změníme na yes
. Soubor bude
vypadat následovně:
Nakonec použijeme zkratku Ctrl + X, vybereme "yes" pomocí klávesy Y a soubor máme uložený. Stačí již jen restartovat SSH server příkazem:
service ssh restart
IP adresa Raspberry
Adresu zjistíme tím, že na Raspberry buď najedeme na značku signalizující internet, nebo do terminálu zadáme:
ip add
Tato adresa bude ve tvaru 10.0.2.10...
.
Vše je připraveno.
Připojení na SSH server
Přejdeme na náš PC.
Windows
Otevřeme PuTTY a uvidíme předešlé okno:
IP adresu Raspberry zadáme do požadovaného okna a zvolíme open (jako
otevřít spojení). PuTTY nás upozorní na možné nebezpečí, my ale riziko
přijmeme a dáme "yes". Následně si PuTTY vyžádá naše jméno a heslo,
zadáme jméno root
a heslo pro root
uživatele.
Linux
Pokud vaše velké PC běží na Linuxu a více si rozumíte s terminálem, není nutné používat PuTTY. Stačí zadat příkaz:
ssh root@ipadresazařízení
Místo ipadresazařízení
napíšeme IP adresu Raspberry.
Terminál nás upozorní na bezpečnost a pak vyzve k přihlášení, zadáme
login root
a vaše root
heslo:
K SSH se dá připojit hned potom, co zapojíme Raspberry do elektřiny. Nemusíte k němu ani připojit monitor, stačí, aby byl v dosahu naší sítě. Bohužel je to zrádné kvůli přidělování IP adres.
VNC
Je super ovládat Raspberry terminál pomocí jiného PC, ale někomu to nemusí stačit. Proto tu máme VNC Viewer. VNC je aplikace, pomocí které můžeme vidět obrazovku a tím pádem i celé grafické prostředí počítače, na kterém je spuštěn VNC server, a to na jakémkoli zařízení. Vzdálený počítač lze poté rovněž ovládat. Můžeme používat mobil, tablet nebo jiný počítač, který je buď na stejné nebo jiné síti. My si ale dnes ukážeme, jak spojit dva počítače na stejné síti.
Instalace VNC serveru na Raspberry Pi
Začneme na Raspberry. Jako před každou instalací aplikace na Linuxu zkusíme, jestli máme všechen software aktuální.
Aktualizace softwaru
Do terminálu napíšeme příkaz:
sudo apt update && apt upgrade
Pokud je náš software aktuální, můžeme pokračovat. Pokud ne, potvrdíme, že chceme pokračovat, a nainstalujeme všechny aktualizace. Tato operace může i chvíli trvat.
vncserver
Dalším krokem je instalace vncserver
jako takového. Do
terminálu zadáme tento příkaz:
apt-get install tightvncserver
Instalace bude v terminálu vypadat nějak takto:
Konfigurace a spuštění serveru
Po úspěšné instalaci se můžeme vrhnout na konfiguraci a první spuštění našeho serveru. Zadáme jednoduše:
vncserver :1
Číslo jedna znamená číslo portu, na kterém bude vncserver
spuštěn. Ve výsledku to pak bude např 10.0.2.42:1
. Tyto porty
jsou občas rezervované pro jistou službu, třeba 22
je
rezervováno pro SSH.
VNC server se nás hned zeptá na heslo, které musíme kvůli bezpečnosti vždy před připojením zadat. Zadáme toto heslo a jeho potvrzení.
Poté se nás zeptá, zda chceme zadat i heslo pro přístup jen pro sledování bez ovládání, což nepotřebujeme a proto zadáme "n" a potvrdíme.
Náš server je nastaven. V terminálu to vypadá následovně:
Abychom nemuseli připojovat Raspberry k monitoru, připojíme
se na něj přes SSH a potom jen zadáme příkaz vncserver:
,
kterým spustíme VNC server. Z PC pak lze malinu ovládat plně graficky.
Instalace VNC Viewer
VNC viewer je aplikace, pomocí které se připojujeme na cizí PC, který má nainstalovaný VNC server. Budeme ji tedy instalovat do našeho velkého PC. Pro Windows i Linux jej stáhneme z https://www.realvnc.com/…load/viewer/.
Po úspěšné instalaci otevřeme aplikaci a zobrazí se nám podobné okno:
Později zde budeme mít všechna naše zařízení, na která se chceme vzdáleně připojit.
Připojení na náš VNC server přes VNC Viewer
Otevřeme si VNC viewer na našem PC a ukáže se nám okno výše. Zde klikneme na File -> New connection..., což nám otevře nové okno:
V tomto okně nás budou zajímat dvě věci:
- "VNC server" - Sem zadáme adresu našeho serveru, což je stejná IP
adresa, kterou jsme zadávali při spojení SSH (IP adresa našeho Raspberry Pi)
+
:1
, což je číslo portu - "name" - Sem zadáme libovolný název
Vyplněné okno bude vypadat asi takto:
Když máme okno vyplněné tímto způsobem, můžeme potvrdit tlačítkem "Ok".
Před sebou teď máme naše prvotní okno, ve kterém přibyl nový počítač, na který se lze připojit. Dvakrát na něj klikneme, abychom se na něj připojili. Otevře se nám okno a před něj skočí červené varování s otázkou, jestli chceme pokračovat, zvolíme "Continue".
Server po nás bude požadovat autorizaci heslem, které jsme vytvářeli při jeho spuštění:
Po zadání hesla a potvrzení se nám otevře okno, kde vidíme celou plochu našeho Raspberry Pi:
A můžeme pracovat, jak potřebujeme
V příští lekci, Raspberry Pi - Piny a protokoly, si řekneme vše o pinech Raspberry Pi.