Skip to main content

Slik konfigurerer du Raspberry Pi for Remote Shell, Desktop og File Transfer

Slik konfigurerer du Raspberry Pi for Remote Shell, Desktop og File Transfer

Geoffrey Carr

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 slik 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 solid 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 bygget 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 skal, fjerntliggende skrivebord og ekstern filoverføring, gjør vi det veldig 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 for å jobbe med Raspberry Pi, anbefaler vi sterkt at du sjekker ut HTG Guide 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 skal 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 fjernhodet / grensesnittet. 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å et flott tidspunkt å sjekke IP-adressen til din Raspberry Pi-enhet på det lokale nettverket. Type ifconfig på spørsmålet og deretter se på utgangen av kommandoen. Hvis du bruker Ethernet-porten, vil du 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 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 deg 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 til Pi, og be deg om å logge inn. Gå videre og logg inn med pi / bringebær:

Når din SSH-tilkobling 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 ditt til du har fullført hele prosjektet og har alt i orden.

Før vi går videre, er det litt ekstra funksjonalitet vi kan presse 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 å bruke 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) -iteringer, 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 tak i 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 install 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å en av 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 ditt, 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 -geometry 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 (endre nummeret 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 forårsake problemer med den faktiske skjermbasert skrivebordet (mens du forlater det eksterne skrivebordssnittet 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 på 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 opprett 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:

#!/bin/sh ### BEGIN INIT INFO # Provides: tightvncserver # Required-Start: # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: start vnc server # Description: ### END INIT INFO

case “$1” in start) su pi -c ‘vncserver :1 -geometry 1600×900 -depth 16 -pixelformat rgb565:’ echo “VNC Started” ;; stop) pkill Xtightvnc echo “VNC Terminated” ;; *) echo “Usage: /etc/init.d/tightvnc {start|stop}” exit 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 stop

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 defaults

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 opp og bli forberedt med VNC-klienten din 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 det fra kommandolinjen blir virkelig kjedelig, virkelig rask. Med en GUI-omslag kan vi tilbringe 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 for nettverkslagring. 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 via 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 din Pi. På dette punktet 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.

Link
Plus
Send
Send
Pin