19Aug

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 het in een volledig op zichzelf staande doos te veranderen - 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 bekleed in een stevige behuizing, is een kleine computer. Het is perfect om ergens uit het zicht weg te duiken 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 hebben gebouwd 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, ensluit 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 weheb het apparaat aangesloten op een volledig werkstation.

Wat heb ik nodig?

Als u helemaal geen ervaring hebt met het werken met de Raspberry Pi, raden we u ten zeerste aan de HTG-gids voor Aan de slag met Raspberry Pi uit te proberen om de basis 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 moeten werken met andere Linux-gebaseerde Pi-distributies maar met zullen we Raspbian gaan 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 de 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.

Configureren en verbinden met de SSH-server

Toegang tot de afstandsbedieningslijn op uw Raspbian-installatie is ongeveer de handigste kleine aanpassing die u aan uw systeem kunt aanbrengen, en het is eenvoudig in te schakelen.

Open de terminal in Rasbian, de snelkoppeling is LXTerminal op het bureaublad en typ de volgende opdracht:

sudo raspi-config

Navigeer omlaag naar ssh en druk op enter. Wanneer u wordt gevraagd naar de SSH-server, selecteert u Schakel in en druk nogmaals op enter. U keert terug naar het Raspi-config-paneel;navigeer naar Finish 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 raspberry , respectievelijk.

Terwijl u nog steeds op de opdrachtregel zit, is het nu een goed moment om het IP-adres van uw Raspberry Pi-eenheid in het lokale netwerk te controleren. Typ ifconfig bij de prompt en kijk vervolgens naar de uitvoer van de opdracht. Als u de Ethernet-poort gebruikt die u wilt zoeken naar de init addr in de eth0 -sectie;als u Wi-Fi gebruikt, wilt u de init addr zoeken 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 eenvoudigweg het ssh -commando gebruiken 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 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 eronder:

Druk op Open onderaan en PuTTY start een terminalvenster voor u, maak verbinding met uw Pi en vraag u omlog in. Ga je gang en meld je aan met pi / raspberry :

Als je SSH-verbinding eenmaal functioneel is, kun je de rest van deze tutorial technisch vanuit het comfort van je bureau op afstand voltooien - hoewel we zouden adviseren om het hoofd en het toetsenbord te laten staanop uw systeem totdat u het hele project hebt voltooid en alles vlot verloopt.

Voordat we verder gaan, is er wat 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 externe bureaublad instellen en configureren

Toegang op afstand via de opdrachtregel is geweldig, maar dat betekent ook dat u toegang heeft 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", noemen we de tool die we eigenlijk installeren VirtualConnect Computing( VNC) - waar veel van bekend zijn, zoals RealVNC en TightVNC.Voor deze zelfstudie installeren we TightVNC op de Pi. Om toegang te krijgen tot de Pi-gebaseerde TightVNC-sessie hebt u een externe client nodig zoals:

  • TightVNC desktop-client voor Windows
  • TightVNC desktop-client voor Linux / Unix-achtige systemen
  • RealVNC desktop-client voor OSX

Nu een kopie pakken, enwe zullen het later in deze sectie 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 install 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 de opdracht voor de server uitvoeren als volgt:

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 allerbelangrijkste, welke resolutie het bureaublad zal weergeven, zodat u kunt genieten van een volledig schermop 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) om te zetten 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-serverexemplaar 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 wiltkill):

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 met succes 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 monitor-aangehechte desktop( terwijl de externe bureaubladinterface van de VNC-server onaangetast 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 gebruikerspi-forhet nieuwsgierige, het. Xauthority-bestand wordt gebruikt door het X-Windows-systeem in Rasbian en iets tijdens het TightVNC-serverinstallatie- en -configuratieproces veroorzaakt dat kleine toestanden hikken.

Laten we, met die kleine omweg op pad, terug naar het afronden van onze externe desktop-configuratie.

Nu we volledige opdrachtregel en desktoptoegang tot de Raspberry Pi hebben, is er één niet zo triviale aanpassing die we moeten maken. Met het Raspi-config-hulpprogramma stelt de SSH-server automatisch in op opstarten voor ons, 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 op de opdrachtregel de volgende opdracht:

sudo nano /etc/init.d/ tightvnc

Hiermee wordt een bestand gemaakt in de initialiseringsdirectory met de naam "tightvnc" 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
# Provides: tightvncserver
# Vereist-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Korte beschrijving: start vnc-server
# Beschrijving:
### EINDE INIT-INFO

-zaak "$ 1 "in
start)
su pi -c 'vncserver: 1 -geometry 1600 × 900 -depth 16 -pixelformat rgb565:'
echo" VNC Started "
; ;
stop)
pkill Xtightvnc
echo "VNC beëindigd"
; ;
*)
echo "Gebruik: /etc/init.d/ tightvnc{ start | stop}"
exit 1
; ;
esac

Naast het wijzigen van het gedeelte voor de schermresolutie van het script, is er nog iets dat u kunt wijzigen. In regel 14 kunt u het commando "su pi -c" wijzigen in een ander gebruikersaccount naast "pi" als u VNC naar de specifieke desktop voor dat account wilt.

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 testen vanaf de prompt:

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 reboot

Nadat 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 toegang op afstand via de opdrachtregel via SSH en externe desktoptoegang via VNC onder onze riem, gaan we verder met het vereenvoudigen van het proces van het overbrengen van bestanden tussen onze Pi en desktopcomputer.

Bestandsoverdrachtstools instellen en configureren

Aangezien 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 tutorial? 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 SCP wordt overgedragen): 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 - & gt;Site Manager. Maak een nieuw site-item, geef het een naam en plug 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 u krijgt een soortgelijke weergave te zien:

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 aanvullende configuratie nodig maar met als u uw Pi wilt configureren om bestanden te ontvangen en te delen zonder dat de externe gebruiker fancy tools nodig heeft( zoals een voor SCP geschikte FTP-client zoals FileZilla), raden we ten zeerste aan het Samba-configuratiegedeelte van onze gids te raadplegen: Een Raspberry Pi in een energiezuinig netwerkopslagapparaat veranderen. Als je dat leest, zul je vertrouwd raken met het instellen van een eenvoudige 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, je hebt 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 verwijderenen stop het weg als een stille en onthoofde machine.

Heeft u een idee voor het Raspberry Pi-project en wilt u dat wij 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.