Slik konfigurerer du din Raspberry Pi for Remote Shell, Desktop og File Transfer
Så du har en Raspberry Pi, og du vil maksimere sitt lille fotavtrykk ved å bli en helt frittstående boks - ingen skjerm, tastatur eller andre inngangsutstyr. Les videre når vi viser deg hvordan du konfigurerer ekstern shell, desktop og filoverføringstilgang på Pi.
Hvorfor vil jeg gjøre dette?
Pi, selv kledd i et solidt tilfelle, er en liten datamaskin. Det er perfekt for tucking et sted ute av syne uten en giggle av ledninger stikker av det - for mange prosjekter trenger du rett og slett ikke en permanent skjerm og perifert akkompagnement.
At ikke betyr imidlertid at du ikke trenger å koble til boksen for å gjøre endringer, oppdatere ting, overføre filer og så videre. Et perfekt eksempel på dette er den kule lille regnindikatoren vi bygde som en del av vår Bygg en LED-indikator med en Raspberry Pi (for e-post, vær eller noe). Det trenger ikke alle ting som er festet rett til det, men vi vil fortsatt ha muligheten til å hoppe inn på enheten og enkelt gjøre endringer eller prøve nye eksperimenter med LED-modulen uten å måtte dra den tilbake til verkstedet, og koble den til en skjerm, et tastatur, en mus osv. Ved å konfigurere den for eksternt skall, fjerntliggende skrivebord og ekstern filoverføring, gjør vi det super enkelt å alltid samhandle med vår Pi-enhet fra komforten på stasjonæren vår som om vi Jeg har koblet enheten til en full arbeidsstasjon.
Hva trenger jeg?
Hvis du er helt ny til å jobbe med Raspberry Pi, anbefaler vi sterkt at du sjekker ut HTG-guiden for å komme i gang med Raspberry Pi for å få tak i det grunnleggende i enheten og komme opp til fart.
For denne opplæringen trenger du følgende ting:
- En Raspberry Pi kjører Raspbian.
- En stasjonær eller bærbar datamaskin.
- Et lokalt Wi-Fi eller kablet nettverk for å koble Pi og datamaskinen.
For det første bør de fleste trinnene i denne opplæringen fungere sammen med andre Linux-baserte Pi-distribusjoner men Vi skal bruke Raspbian. Du bør ha lite problemer med å tilpasse opplæringen til andre distribusjoner.
For det andre bruker vi en Windows-maskin som vår nettverksbaserte datamaskin for å samhandle med Raspberry Pi-enheten som fjernhode / grensesnitt. Når det er hensiktsmessig, vil vi gjøre vårt beste for å koble til opplæringsprogrammer og foreslåtte lesing om utførelse av parallelle oppgaver og verktøy på OS X og Linux.
Sette opp og koble til SSH-serveren
Fjernkommandolinjens tilgang til Raspbian-installasjonen handler om den praktiske, enkle tweak du kan lage til systemet ditt, og det er nede helt enkelt å aktivere.
Åpne terminalen i Rasbian, snarveien er LXTerminal på skrivebordet, og skriv inn følgende kommando:
sudo raspi-config
Naviger ned til ssh og trykk enter. Når du blir bedt om SSH-serveren, velger du Aktiver og trykk inn igjen. Du vil bli returnert til Raspi-config-panelet; naviger ned til Bli ferdig og trykk Enter for å lukke konfigurasjonsverktøyet. Det er alt du trenger å gjøre for å slå på SSH-tilgangen til Pi. Standard SSH login og passord er pi og bringebær, henholdsvis.
Mens du fortsatt sitter på kommandolinjen, er det nå en flott tid å sjekke IP-adressen til din Raspberry Pi-enhet på det lokale nettverket. Type ifconfig ved spørringen og se deretter på utgangen av kommandoen. Hvis du bruker Ethernet-porten du vil se etter init addr i eth0 seksjon; Hvis du bruker Wi-Fi, vil du lete etter init addr i wlan0 seksjon. I tillegg til å sjekke og notere IP-adressen, er dette også et flott tidspunkt å sette opp en statisk IP-oppføring i ruteren, slik at du ikke trenger å jakte på IP-en i fremtiden.
Nå som vi har SSH-serveren aktivert, vet vi påloggingen, og vi kjenner maskinens IP-adresse, det er på tide å koble inn via SSH og teste det ut. For å gjøre det fra Linux og OS X kan du bare bruke ssh kommandoen på terminalen. Windows-brukere trenger imidlertid en SSH-klient som PuTTY.
Siden vi bruker en Windows-boks til fjernstyring av Pi, er PuTTY det. Installer en kopi av PuTTY eller hent den bærbare versjonen og brann den opp. Det er mye av innstillinger du kan rote med i PuTTY, men vi trenger bare å bekymre oss om en ting å koble til vår Pi. På hovedgrensesnittet, skriv inn IP-adressen til din Pi og velg SSH under det:
Truffet Åpen nederst og PuTTY vil starte et terminalvindu for deg, koble deg til Pi, og be deg om å logge inn. Gå videre og logg inn med pi / bringebær:
Når SSH-tilkoblingen din er funksjonell, kan du teknisk sett fullføre resten av denne opplæringen eksternt fra skrivebordets komfort, selv om vi anbefaler at du forlater hodet og tastaturet på systemet til du har fullført hele prosjektet og har alt i gang.
Før vi går videre, er det litt ekstra funksjonalitet vi kan klemme ut av SSH. I tillegg til å styre kommandolinjen eksternt, kan du også eksternt overføre filer ved hjelp av Secure Copy. Det er kommandolinjeintensivt og ikke spesielt praktisk for å overføre et stort antall filer hentet fra flere kataloger, men for en engangs konfigurasjonsfiloverføring eller annen liten dump, er det ganske praktisk. Se vår guide til å kopiere filer over SSH ved hjelp av SCP-kommandoen her.
Vi skal se nærmere på mer brukervennlige / GUI-baserte filoverføringsteknikker senere i opplæringen.
Konfigurere og konfigurere eksternt skrivebord
Fjernkommandolinjens tilgang er fantastisk, men det har også tilgang til skrivebordet for GUI-fokuserte aktiviteter. La oss ta med styrken til kommandolinjen og krefter på skrivebordet sammen.
Selv om vi har referert til det som "eksternt skrivebord" til dette punktet, er verktøyet vi faktisk installerer kjent som Virtual Network Computing (VNC) -titler som mange er kjent med som RealVNC og TightVNC. For denne opplæringen installerer vi TightVNC på Pi. For å få tilgang til den Pi-baserte TightVNC-økten, trenger du en ekstern klient som:
- TightVNC desktop klient for Windows
- TightVNC desktop klient for Linux / Unix-lignende systemer
- RealVNC desktop klient for OSX
Ta en kopi nå, og vi kommer til å trekke den ut senere i denne delen. For nå, la oss gå ned for å installere TightVNC-serveren på Raspberry Pi. Åpne terminalen. Skriv inn følgende kommando for å komme i gang:
sudo apt-get installert tightvncserver
Dette vil laste ned og pakke ut installasjonsfilene; Når du blir bedt om å fortsette, trykk Y. Etter at installasjonen er fullført, blir du returnert til spørringen. Du kan starte VNC på to måter. Bare kjører kommandoen for serveren slik:
tightvncserver
Vil be deg om å skrive inn et passord for å få tilgang til VNC-skrivebordet, som vist på skjermbildet ovenfor. Passordet må være 4-8 tegn langt. Når du har bekreftet passordet, blir du bedt om å angi et eneste passord for visning (du kan velge bort trinnet, som vi gjorde).
Alternativt kan du bruke en mye mer presis, om enn lenger å skrive ut, kommando som gir deg mer kontroll over hvordan den eksterne datamaskinen vil se skrivebordet - viktigst, hvilken oppløsning skrivebordet vil vise, slik at du kan nyte en fullskjermvisning på den eksterne datamaskinen. For å angi oppløsningen til VNC-skrivebordet, bruk følgende kommando, bytte ut oppløsningsverdien (det fjerde elementet i kommandoen) for oppløsning av det eksterne skrivebordet:
vncserver: 1-geometri 1600 × 900 -depth 16-pixelformat rgb565:
Hvis du til enhver tid gjør en feil ved å sette opp VNC-server-forekomsten din og / eller du vil slå av VNC-serveren, skriv du bare inn følgende (endrer tallet etter kolonnummeret til nummeret til VNC-forekomsten du vil drepe) :
vncserver -kill: 1
Nå som vi har VNC-serveren oppe, kan vi koble den til fra vårt eksterne skrivebord. Slå opp TightVNC-visningsprogrammet på datamaskinen din og koble til IP-adressen til Raspberry Pi-enheten etterfulgt av: 1 slik:
Og her er vår belønning for vellykket konfigurering av vår VNC-server - en fin fullskjermvisning av vår eksterne Raspberry Pi-enhet:
Det er et kjent problem med TightVNC og Rasbian som, takket være en wonky tillatelsesendring, vil føre til problemer med den faktiske skjermbasert skrivebordet (mens du forlater det eksterne skrivebordsbasert grensesnittet som leveres av VNC-serveren uberørt). For å fikse dette problemet før det blir et problem for deg, gå rett til kommandolinjen og skriv inn følgende kommando:
sudo chown pi / home/pi/.Xauthority
Denne kommandoen endrer eierskapet til .Xauthority-filen tilbake til brukeren pi-for nysgjerrig, .Xauthority-filen brukes av X-windows-systemet i Rasbian og noe under installasjonen av TightVNC-serveren og konfigurasjonsprosessen forårsaker den lille tillatelsen hikke.
Med den lille mindre omveien utover veien, la oss komme tilbake for å fullføre vår eksterne skrivebordskonfigurasjon.
Nå som vi har full kommandolinje og desktop tilgang til Raspberry Pi, er det en ikke-så-trivial tweak vi må gjøre. Raspi-config verktøyet satte SSH-serveren til å starte automatisk ved oppstart for oss, men VNC-serveren er ikke konfigurert på en slik måte. Du kan hoppe over dette trinnet og starte serveren manuelt på kommandolinjen via SSH når du trenger det, men vi prøver å gjøre dette så uklar som mulig for fremtidig bruk. La oss ta et øyeblikk nå og opprette en oppstartsfil for VNC-serveren.
For å starte VNC-serveren automatisk, må vi sette opp en init- eller initialiseringsfil som Raspbian skal bruke for å starte og stenge serveren under oppstart og nedleggingsprosessen. La oss lage init-filen nå. På kommandolinjens type i følgende kommando:
sudo nano /etc/init.d/tightvnc
Dette vil opprette en fil i initialiseringskatalogen kalt "tightvnc" og åpne nano-editoren slik at vi kan lime inn i skriptet vårt. I nano-editoren, lim inn følgende kode (pass på å endre 1600 × 900 oppløsningsverdien for å matche skjermen på den eksterne datamaskinen din:
#! / Bin / sh
### BEGIN INIT INFO
# Gir: tightvncserver
# Påkrevd-Start:
# Påkrevd-Stopp:
# Standardstart: 2 3 4 5
# Standardstopp: 0 1 6
# Kort beskrivelse: start vnc-server
# Beskrivelse:
### END INIT INFOtilfelle "$ 1" i
start)
su pi-c 'vncserver: 1-geometri 1600 × 900 -depth 16-pixelformat rgb565:'
ekko "VNC Started"
;;
Stoppe)
pkill Xtightvnc
ekko "VNC Terminated"
;;
*)
ekko "Bruk: /etc/init.d/tightvnc start | stop"
avkjørsel 1
;;
ESAC
I tillegg til å endre skjermoppløsningsdelen av skriptet, er det en annen ting du kan endre. I linje 14 kan du endre kommandoen "su pi -c" til en annen brukerkonto i tillegg til "pi" hvis du ønsker å VNC til det bestemte skrivebordet for den kontoen.
Når du har klistret og endret koden, er det på tide å lagre det. Trykk CTRL + X for å avslutte og lagre arbeidet ditt i nano. Når du er tilbake på kommandolinjen, må vi gjøre noen raske endringer i tillatelsene til filen:
sudo chmod 755 /etc/init.d/tightvnc
Nå er initialiseringsfilen kjørbar. Vi kan teste det fra spørringen:
sudo /etc/init.d/tightvnc start
sudo /etc/init.d/tightvnc stopp
Den siste endringen vi skal gjøre er å oppdatere rc.d-filen (hvilke spor som initiliseringsskript er i /init.d/ mappen):
sudo update-rc.d tightvnc standardinnstillinger
Når du har skrevet inn denne kommandoen, får du en bekreftelse på at filen ble oppdatert. Nå er det tid for den virkelige testen: lastes filen riktig etter omstart? Skriv inn følgende på kommandolinjen for å starte på nytt og bli forberedt med VNC-klienten for å teste forbindelsen på et øyeblikk:
sudo reboot
Når systemet har fullført omstart, logg inn med VNC-klienten. Hvis din VNC-økt mislykkes, kan du gå til kommandoprompten og kjøre kommandoen tightvnc start (fra testdelen ovenfor) for å dobbeltsjekke at filen er kjørbar og at passordet ble lagret riktig.
På dette tidspunktet er vi enda lenger i vår oppgave å fjernkontrollere vår Raspberry Pi-enhet. Med ekstern kommandolinje tilgang via SSH og ekstern desktop tilgang via VNC under våre belter, la oss gå videre for å forenkle prosessen med å overføre filer mellom vår Pi og stasjonær datamaskin.
Konfigurere og konfigurere filoverføringsverktøy
Siden vi allerede har SSH satt opp, er den enkleste måten å sette opp en enkel, enkel filoverføring mellom våre Pi og eksterne datamaskiner, å piggy tilbake et GUI-grensesnitt på SSH-tilkoblingen. Husk hvordan vi snakket om å bruke SCP over SSH tidligere i opplæringen? Kjører den fra kommandolinjen blir virkelig kjedelig, virkelig rask. Med en GUI-omslag kan vi bruke mer tid på å flytte filer og spille med Pi og mindre tid å peke på tastaturet.
Selv om det finnes en rekke GUI wrappers for SCP-kommandoen, skal vi gå med et tverrplattformverktøy som mange allerede kjenner, har og elsker (og kan til og med være uvitende om at det gjør SCP-overføringer): FileZilla. Den er tilgjengelig for Windows, OS X og Linux-du kan ta en kopi her.
Når du har installert FileZilla, brann den opp og gå til File -> Site Manager. Opprett en ny sideoppføring, navn den, og legg inn brukernavn og passord for Pi.
Endelig sørg for å sette porten til 22 og Servertype til SFTP - SSH File Transfer Protocol. Klikk på Koble til nederst, og du blir behandlet til en visning som ligner denne:
Dine lokale kataloger er i venstre rute, og de eksterne katalogene på Pi er i den høyre ruten. Flytte filer mellom de to er like enkelt som å dra og slippe dem.
Å dra nytte av den eksisterende SSH-filoverføringen, er den enkleste måten å komme til filene på Pi uten ekstra konfigurasjon nødvendig men hvis du vil konfigurere din Pi til å motta og dele filer uten at den eksterne brukeren trenger noen fancy verktøy (som en SCP-kompatibel FTP-klient som FileZilla), anbefaler vi sterkt å sjekke Samba-konfigurasjonsdelen av vår guide: Hvordan slå en bringebær Pi inn i en lagringsenhet med lav strømforbruk. Lese over det vil gjøre deg kjent med å sette opp en grunnleggende Samba-del på Pi for å lage en delt mappe som er lett tilgjengelig med omtrent alle på nettverket ditt uten tilleggsverktøy.
Du har konfigurert SSH, du har konfigurert VNC, og du har konfigurert enkel SFTP- og / eller Samba-tilgang til Pi-på dette tidspunktet kan du starte opp Raspberry Pi, ta bort skjermen, tastaturet og musen, og ta den bort som en stille og hodeløs maskin.
Har du en ide for Raspberry Pi-prosjektet, og du dør for oss å skrive en veiledning for det? Lyder av i kommentarene eller skyt oss en epost på [email protected], og vi vil gjøre vårt beste for å hjelpe.