Hoe u uw Raspberry Pi configureert voor externe shell-, desktop- en bestandsoverdracht
Dus je hebt een Raspberry Pi en je wilt zijn kleine voetafdruk maximaliseren door een volledig op zichzelf staande box te worden - geen monitor, toetsenbord of andere invoerrandapparatuur. Lees verder terwijl we u laten zien hoe u externe shell-, desktop- en bestandsoverdrachtstoegang op uw Pi kunt instellen.
Waarom wil ik dit doen??
De Pi, zelfs gekleed in een stevige behuizing, is een kleine computer. Het is perfect om ergens uit het zicht te verdwijnen zonder dat een hoop draden er vanaf steken - voor veel projecten heb je simpelweg geen permanente monitor en perifere begeleiding nodig.
Dat niet betekent echter dat u geen verbinding hoeft te maken met de box om wijzigingen aan te brengen, dingen bij te werken, bestanden over te zetten, enzovoort. Een perfect voorbeeld hiervan is de coole kleine regenindicator die we bouwden als onderdeel van onze Build an LED Indicator met een Raspberry Pi (voor e-mail, weer of iets) artikel. Het heeft niet al die dingen nodig die eraan zijn gekoppeld, maar we willen nog steeds de mogelijkheid om op het apparaat te springen en gemakkelijk wijzigingen aan te brengen of nieuwe experimenten uit te proberen met de LED-module zonder het terug naar de werkplaats te slepen, en sluit het aan op een monitor, toetsenbord, muis, enz. Door het te configureren voor externe shell, remote desktop en externe bestandsoverdracht, maken we het supereenvoudig om altijd met onze Pi-eenheid te communiceren vanuit het comfort van onze desktopcomputer alsof we heb de eenheid aangesloten op een volledig werkstation.
Wat heb ik nodig?
Als je helemaal geen ervaring hebt met het werken met de Raspberry Pi, raden we je ten zeerste aan de HTG-gids voor Aan de slag met Raspberry Pi te raadplegen om de basisprincipes van het apparaat onder de knie te krijgen en op snelheid te komen.
Voor deze tutorial heb je de volgende dingen nodig:
- Een Raspberry Pi met Raspbian.
- Een desktop- of laptopcomputer.
- Een lokaal Wi-Fi- of bekabeld netwerk om de Pi en uw computer met elkaar te verbinden.
Ten eerste zouden de meeste stappen in deze tutorial met andere Linux-gebaseerde Pi-distributies moeten werken maar we gaan Raspbian gebruiken. U zou weinig moeite moeten hebben om de tutorial aan te passen aan andere distributies.
Ten tweede gebruiken we een Windows-machine als onze netwerkcomputer om te communiceren met de Raspberry Pi-eenheid als externe hoofd / interface. Indien van toepassing zullen we ons best doen om koppelingen te maken naar zelfstudies en voorgesteld te lezen over het uitvoeren van parallelle taken en hulpmiddelen op OS X en Linux.
Instellen en verbinden met de SSH-server
Toegang op afstand via de opdrachtregel tot uw Raspbian-installatie gaat over de handigste kleine aanpassing die u aan uw systeem kunt aanbrengen, en het is eenvoudig om in te schakelen.
Open de terminal in Rasbian, de snelkoppeling is LXTerminal op het bureaublad en typ de volgende opdracht:
sudo raspi-config
Navigeer naar beneden naar ssh en druk op Enter. Selecteer wanneer gevraagd over de SSH-server in staat stellen en druk nogmaals op enter. U keert terug naar het Raspi-config-paneel; navigeren naar beneden Af hebben en druk op Enter om de configuratietool te sluiten. Dat is alles wat u hoeft te doen om SSH-toegang tot uw Pi in te schakelen. De standaard SSH-login en -wachtwoord is pi en framboos, respectievelijk.
Terwijl u nog steeds op de opdrachtregel zit, is het nu een goed moment om de IP van uw Raspberry Pi-eenheid in het lokale netwerk te controleren. Type ifconfig op de prompt en kijk vervolgens naar de uitvoer van de opdracht. Als u de Ethernet-poort gebruikt waarnaar u wilt zoeken init addr in de eth0 sectie; als u Wi-Fi gebruikt, wilt u zoeken naar de init addr in de wlan0 sectie. Naast het controleren en noteren van het IP-adres, is dit ook een goed moment om een statisch IP-adres in te stellen in uw router, zodat u in de toekomst niet naar het IP hoeft te zoeken.
Nu we de SSH-server hebben ingeschakeld, weten we de login, en we kennen het IP-adres van de machine, het is tijd om verbinding te maken via SSH en het uit te testen. Om dit te doen vanuit Linux en OS X kunt u eenvoudig de ssh commando op de terminal. Windows-gebruikers hebben echter een SSH-client zoals PuTTY nodig.
Omdat we een Windows-box gebruiken om onze Pi op afstand te beheren, is PuTTY dat wel. Installeer een kopie van PuTTY of pak de draagbare versie uit en start deze op. Er zijn veel van instellingen waar je in PuTTY mee kunt rotzooien, maar we hoeven ons alleen maar zorgen te maken over één ding om verbinding te maken met onze Pi. Typ in de hoofdsessie-interface het IP-adres van uw Pi in en selecteer SSH onder het:
Raken Open onderaan en PuTTY zal een terminalvenster voor je lanceren, verbinding maken met je Pi en je vragen om in te loggen. Ga je gang en log in met pi / framboos:
Zodra uw SSH-verbinding functioneel is, kunt u de rest van deze tutorial technisch vanuit het comfort van uw bureau op afstand voltooien - hoewel we adviseren om het hoofd en het toetsenbord op uw systeem te laten staan totdat u het hele project hebt voltooid en alles soepel loopt.
Voordat we verder gaan, is er extra functionaliteit die we uit SSH kunnen persen. Naast het op afstand beheren van de opdrachtregel, kunt u ook bestanden op afstand overdragen met Secure Copy. Het is een opdrachtregel intensief en niet bijzonder handig voor het overbrengen van een groot aantal bestanden afkomstig uit meerdere mappen, maar voor een eenmalige configuratie bestandsoverdracht of een andere kleine dump is het best handig. Bekijk onze handleiding voor het kopiëren van bestanden via SSH met behulp van de SCP-opdracht hier.
We zullen later in de zelfstudie meer gebruikersvriendelijke / GUI-gebaseerde technieken voor bestandsoverdracht gaan bekijken.
Uw extern bureaublad instellen en configureren
Toegang op afstand via de opdrachtregel is geweldig, maar dat geldt ook voor toegang tot de desktop voor GUI-gerichte activiteiten. Laten we de bevoegdheden van de opdrachtregel en de bevoegdheden van de desktop samenbrengen.
Hoewel we dit tot nu toe hebben aangeduid als "remote desktop", staat de tool die we eigenlijk installeren ook wel bekend als Virtual Network Computing (VNC) -termen waarvan velen bekend zijn met bijvoorbeeld RealVNC en TightVNC. Voor deze zelfstudie installeren we TightVNC op de Pi. Voor toegang tot de Pi-gebaseerde TightVNC-sessie hebt u een externe client nodig zoals:
- TightVNC-desktopclient voor Windows
- TightVNC-desktopclient voor Linux / Unix-achtige systemen
- RealVNC desktop-client voor OSX
Grijp nu een exemplaar en we zullen het later in dit gedeelte uitzetten. Laten we voorlopig beginnen met het installeren van de TightVNC-server op uw Raspberry Pi. Open de terminal. Voer de volgende opdracht in om te beginnen:
sudo apt-get installeer tightvncserver
Hiermee worden de installatiebestanden gedownload en uitgepakt; wanneer u wordt gevraagd om door te gaan, drukt u op Y. Nadat de installatie is voltooid, keert u terug naar de prompt. U kunt de VNC op twee manieren starten. Gewoon het commando voor de server uitvoeren zoals:
tightvncserver
Zal u vragen een wachtwoord in te voeren om toegang te krijgen tot uw VNC-bureaublad - zoals te zien in de bovenstaande schermafbeelding. Het wachtwoord moet 4-8 tekens lang zijn. Nadat u het wachtwoord hebt bevestigd, wordt u gevraagd om een wachtwoord voor alleen bekijken in te stellen (u kunt zich afmelden voor de stap, zoals wij deden).
U kunt ook een veel preciezer, zij het langer te typen commando gebruiken dat u meer controle geeft over hoe de externe computer het bureaublad zal zien - het allerbelangrijkst, welke resolutie het bureaublad zal weergeven, zodat u kunt genieten van een volledig schermweergave op de externe computer. Als u de resolutie van het VNC-bureaublad wilt opgeven, gebruikt u de volgende opdracht om de resolutiewaarde (het vierde item in de opdracht) uit te wisselen voor de resolutie van het externe bureaublad:
vncserver: 1 -geometry 1600 × 900 -depth 16 -pixelformat rgb565:
Als u op enig moment een fout maakt bij het opzetten van uw VNC-serverinstantie en / of als u de VNC-server wilt afsluiten, voert u eenvoudig het volgende in (het aantal na de dubbele punt wijzigen in het nummer van de VNC-instantie die u wilt doden) :
vncserver -kill: 1
Nu we de VNC-server in gebruik hebben, kunnen we er vanaf onze externe desktop verbinding mee maken. Start de TightVNC-viewer op uw computer en sluit het IP-adres van de Raspberry Pi-eenheid aan, gevolgd door: 1 als volgt:
En hier is onze beloning voor het succesvol configureren van onze VNC-server: een mooi volledig scherm van onze externe Raspberry Pi-eenheid:
Er is een bekend probleem met TightVNC en Rasbian dat, dankzij een slechte toestandswijziging, problemen zal veroorzaken met de eigenlijke desktop die is aangesloten op de monitor (terwijl de externe bureaubladinterface van de VNC-server ongemoeid blijft). Om dit probleem te verhelpen voordat het zelfs een probleem voor u wordt, gaat u naar de opdrachtregel en voert u de volgende opdracht in:
sudo chown pi /home/pi/.Xauthority
Deze opdracht wijzigt de eigendom van het .Xauthority-bestand terug naar de gebruiker-pi - voor het merkwaardige, wordt het .Xauthority-bestand gebruikt door het X-windows-systeem in Rasbian en iets tijdens de installatie en het configuratieproces van de TightVNC-server veroorzaakt dat kleine toestanden hikken.
Met die kleine omweg op de weg, laten we teruggaan naar het afwerken van onze remote desktop-configuratie.
Nu we de volledige commandoregel en desktoptoegang tot de Raspberry Pi hebben, is er één niet-zo-triviale aanpassing die we moeten maken. Met de Raspi-config-tool kan de SSH-server automatisch opstarten bij het opstarten, maar de VNC-server is nog niet zo geconfigureerd. U kunt deze stap overslaan en de server handmatig op de opdrachtregel starten via SSH wanneer u het nodig hebt, maar we proberen dit zo gemakkelijk mogelijk te maken voor toekomstig gebruik. Laten we nu een minuutje nemen en een opstartbestand maken voor de VNC-server.
Om de VNC-server automatisch te starten, moeten we een init- of initialisatiebestand instellen dat Raspbian zal gebruiken om de server netjes op te starten en af te sluiten tijdens het opstarten en afsluiten. Laten we nu het init-bestand maken. Typ de volgende opdracht op de opdrachtregel:
sudo nano /etc/init.d/tightvnc
Hiermee wordt een bestand in de initialisatiemap met de naam "tightvnc" gemaakt en wordt de nano-editor geopend, zodat we dit in ons script kunnen plakken. Plak in de nano-editor de volgende code (zorg ervoor dat u de resolutie van 1600 × 900 wijzigt om overeen te komen met het scherm van uw externe computer:
#! / Bin / sh
### BEGIN INIT INFO
# Biedt: tightvncserver
# Required-Start:
# Vereist - Stop:
# Standaard start: 2 3 4 5
# Standaard-stop: 0 1 6
# Korte beschrijving: start vnc-server
# Omschrijving:
### EINDE INIT INFOvraag "$ 1" in
begin)
su pi -c 'vncserver: 1 -geometry 1600 × 900 -depth 16 -pixelformat rgb565:'
echo "VNC Gestart"
;;
hou op)
pkill Xtightvnc
echo "VNC beëindigd"
;;
*)
echo "Gebruik: /etc/init.d/tightvnc start | stop"
afslag 1
;;
esac
Naast het aanpassen van het schermresolutiegedeelte van het script, is er nog iets dat u kunt wijzigen. In regel 14 kun je het commando "su pi -c" wijzigen in een ander gebruikersaccount naast "pi" als je VNC wilt instellen op de specifieke desktop voor dat account.
Nadat u de code hebt geplakt en gewijzigd, is het tijd om deze op te slaan. Druk op CTRL + X om af te sluiten en uw werk op te slaan in nano. Zodra u terug bent op de opdrachtregel, moeten we een paar snelle wijzigingen aanbrengen in de machtigingen van het bestand:
sudo chmod 755 /etc/init.d/tightvnc
Nu is het initialisatiebestand uitvoerbaar. We kunnen het van de prompt testen:
sudo /etc/init.d/tightvnc start
sudo /etc/init.d/tightvnc stop
De laatste wijziging die we gaan maken, is het rc.d-bestand bijwerken (dat bijhoudt welke initialisatiescripts zich in de map /init.d/ bevinden):
sudo update-rc.d tightvnc standaardinstellingen
Nadat u die opdracht hebt ingevoerd, ontvangt u een bevestiging dat het bestand is bijgewerkt. Nu is het tijd voor de echte test: wordt het bestand correct geladen na opnieuw opstarten? Voer het volgende in op de opdrachtregel om opnieuw op te starten en voorbereid te zijn met uw VNC-client om de verbinding in een oogwenk te testen:
sudo herstart
Zodra het systeem opnieuw is opgestart, meldt u zich aan met uw VNC-client. Als uw VNC-sessie mislukt, bezoekt u de opdrachtprompt en voert u de opdracht tightvnc start uit (uit het testgedeelte hierboven) nogmaals om te controleren of het bestand uitvoerbaar is en of het wachtwoord correct is opgeslagen.
Op dit punt zijn we nog verder in onze missie om onze Raspberry Pi-eenheid volledig op afstand te besturen. Met remote opdrachtregel toegang via SSH en remote desktop toegang via VNC onder onze belt, laten we verder gaan met het vereenvoudigen van het proces van het overbrengen van bestanden tussen onze Pi en desktop computer.
Hulpprogramma's voor bestandsoverdracht instellen en configureren
Omdat SSH al is ingesteld, is de eenvoudigste manier om een doodeenvoudige bestandsoverdracht tussen onze Pi en externe computers in te stellen, om een GUI-interface op de SSH-verbinding te gebruiken. Weet je nog hoe we het hadden over het gebruik van SCP via SSH eerder in de zelfstudie? Het uitvoeren vanaf de opdrachtregel wordt echt vervelend, heel snel. Met een GUI-wrapper kunnen we meer tijd besteden aan het verplaatsen van bestanden en spelen met onze Pi en minder pikken op het toetsenbord.
Hoewel er verschillende GUI-wrappers zijn voor de SCP-opdracht, gaan we een platformonafhankelijke tool gebruiken die veel mensen al kennen, hebben en liefhebben (en mogelijk zelfs niet weten dat deze SCP-overdrachten doen): FileZilla. Het is beschikbaar voor Windows, OS X en Linux - u kunt hier een exemplaar downloaden.
Nadat je FileZilla hebt geïnstalleerd, open je het en ga je naar Bestand -> Sitebeheer. Maak een nieuw site-item, geef het een naam en sluit de gebruikersnaam en het wachtwoord voor uw Pi in.
Zorg er ten slotte voor dat u de poort instelt op 22 en het servertype op SFTP - SSH File Transfer Protocol. Klik onderaan op verbinden en je krijgt een vergelijkbare weergave als deze:
Uw lokale mappen bevinden zich in het linkerdeelvenster en de externe mappen op de Pi bevinden zich in het rechterdeelvenster. Bestanden verplaatsen tussen de twee is net zo eenvoudig als ze slepen en neerzetten.
Gebruik maken van de bestaande SSH-bestandsoverdracht is de gemakkelijkste manier om bij de bestanden op de Pi te komen zonder dat er extra configuratie nodig is maar als je je Pi wilt configureren om bestanden te ontvangen en te delen zonder dat de externe gebruiker fancy tools nodig heeft (zoals een SCP-compatibele FTP-client zoals FileZilla), raden we je ten zeerste aan om het Samba-configuratiegedeelte van onze gids te raadplegen: Een framboos draaien Pi naar een energiebesparend netwerkopslagapparaat. Als je dat leest, zul je vertrouwd raken met het instellen van een basis Samba-share op Pi om een gedeelde map te maken die eenvoudig toegankelijk is voor vrijwel iedereen in je netwerk zonder extra hulpmiddelen.
Je hebt SSH geconfigureerd, VNC geconfigureerd en je hebt eenvoudige SFTP- en / of Samba-toegang tot je Pi ingesteld - op dit punt kun je je Raspberry Pi opstarten, de monitor, het toetsenbord en de muis verwijderen, en stop het weg als een stille en onthoofde machine.
Heb je een idee voor het Raspberry Pi-project en je wilt graag dat we er een zelfstudie voor schrijven? Geluid uit in de opmerkingen of schiet ons een e-mail op [email protected] en we zullen ons best doen om te helpen.