Sådan konfigureres din Raspberry Pi til Remote Shell, Desktop og File Transfer
Så du har en Raspberry Pi, og du vil gerne maksimere sit lille fodspor ved at blive en helt selvstændig boks - ingen skærm, tastatur eller andre input-enheder. Læs videre, da vi viser dig, hvordan du konfigurerer fjernbetjening, desktop og filoverførselsadgang på din Pi.
Hvorfor vil jeg gøre dette?
Pi, selvklædt i et robust tilfælde, er en lille computer. Det er perfekt til tucking et sted ude af syne uden en klump af ledninger stikker af det - for mange projekter behøver du simpelthen ikke en permanent skærm og perifert akkompagnement.
At ikke betyder dog, at du ikke behøver at forbinde til boksen for at foretage ændringer, opdatere ting, overføre filer osv. Et perfekt eksempel på dette er den kølige lille regnindikator, vi byggede som en del af vores Build a LED Indicator med en Raspberry Pi (for Email, Weather, eller Anything) artiklen. Det behøver ikke alle de ting, der er knyttet til det, men vi vil stadig gerne have mulighed for at hoppe på enheden og nemt lave ændringer eller prøve nye forsøg med LED-modulet uden at skulle trække det tilbage til værkstedet, og koble det op til en skærm, et tastatur, en mus osv. Ved at konfigurere den til fjernbetjening, fjernbetjening og fjernfiloverførsel gør vi det super nemt at altid interagere med vores Pi-enhed fra vores computers computer, som om vi Jeg har koblet enheden op til en fuld arbejdsstation.
Hvad har jeg brug for?
Hvis du er helt ny til at arbejde med Raspberry Pi, anbefaler vi stærkt at tjekke ud HTG Guide til Kom godt i gang med Raspberry Pi for at få et håndtag på enhedens grundlæggende og komme op til fart.
Til denne vejledning skal du bruge følgende ting:
- En Raspberry Pi kører Raspbian.
- En stationær eller bærbar computer.
- Et lokalt Wi-Fi eller kablet netværk for at forbinde Pi og din computer.
For det første skal de fleste trin i denne tutorial arbejde sammen med andre Linux-baserede Pi-distributioner men Vi skal bruge Raspbian. Du bør have lidt problemer med at tilpasse tutorial til andre distributioner.
For det andet bruger vi en Windows-maskine som vores netværkscomputer til at interagere med Raspberry Pi-enheden som fjernhoved / interface. Når det er hensigtsmæssigt, vil vi gøre vores bedste for at linke til vejledninger og foreslåede læsninger vedrørende udførelse af parallelle opgaver og værktøjer på OS X og Linux.
Opsætning og tilslutning til SSH-serveren
Fjernkommandolinjeadgang til din Raspbian-installation handler om den bedst mulige lille tweak du kan lave til dit system, og det er nemmere nemt at aktivere.
Åbn terminalen i Rasbian, genvej er LXTerminal på skrivebordet, og skriv følgende kommando:
sudo raspi-config
Naviger ned til ssh og tryk Enter. Når du bliver bedt om SSH-serveren, skal du vælge Aktiver og tryk igen. Du vil blive returneret til Raspi-config panelet; navigere ned til Afslut og tryk Enter for at lukke konfigurationsværktøjet. Det er alt, hvad du skal gøre for at slå SSH-adgang til din Pi. Standard SSH login og adgangskode er pi og hindbær, henholdsvis.
Mens du stadig sidder på kommandolinjen, er det nu en god tid at kontrollere IP af din Raspberry Pi-enhed på det lokale netværk. Type ifconfig på det hurtige tidspunkt og derefter se på udgangen af kommandoen. Hvis du bruger Ethernet-porten, vil du søge efter init addr i eth0 afsnit; Hvis du bruger Wi-Fi, vil du søge efter init addr i wlan0 afsnit. Udover at tjekke og notere IP-adressen er det også en god tid at oprette en statisk IP-indgang i din router, så du ikke behøver at jage på IP'en i fremtiden.
Nu da vi har SSH-serveren aktiveret, kender vi login, og vi kender maskinens IP-adresse, det er tid til at oprette forbindelse via SSH og teste det ud. For at gøre det fra Linux og OS X kan du simpelthen bruge ssh kommandoen på terminalen. Windows-brugere skal dog have en SSH-klient som PuTTY.
Da vi bruger en Windows-boks til fjernstyring af vores Pi, er PuTTY det. Installer en kopi af PuTTY eller tag den bærbare version ud og sluk den. Der er en masse af indstillinger, du kan rod i PuTTY, men vi behøver kun bekymre os om en enkelt ting at forbinde til vores Pi. Indtast IP-adressen på din Pi i hovedgrænsefladen, og vælg SSH under det:
Hit Åben nederst og PuTTY vil starte et terminalvindue for dig, tilslut dig til din Pi og bede dig om at logge ind. Fortsæt og log ind med pi / hindbær:
Når din SSH-forbindelse er funktionsdygtig, kan du teknisk afslutte resten af denne tutorial eksternt fra skrivebordets komfort - selv om vi ville råde over at forlade hovedet og tastaturet på dit system, indtil du har afslutet hele projektet og få alt til at løbe glat.
Før vi går videre, er der noget ekstra funktionalitet, vi kan presse ud af SSH. Udover at styre kommandolinjen eksternt, kan du også overføre filer på en ekstern måde ved hjælp af Secure Copy. Det er kommandolinjeintensivt og ikke særligt bekvemt for at overføre et stort antal filer hentet fra flere mapper, men for en engangs konfigurationsfiloverførsel eller anden lille dump er det ret praktisk. Se vores guide til kopiering af filer via SSH ved hjælp af SCP-kommandoen her.
Vi vil se nærmere på mere brugervenlige / GUI-baserede filoverførselsteknikker senere i vejledningen.
Opsætning og konfiguration af dit fjernskrivebord
Adgang til fjernkommandolinjen er fantastisk, men det har også adgang til skrivebordet til GUI-fokuserede aktiviteter. Lad os medbringe kommandolinjens beføjelser og skrivebordets beføjelser sammen.
Selv om vi har henvist til det som "remote desktop" til dette punkt, er det værktøj, vi faktisk installerer, kendt som Virtual Network Computing (VNC) -iteringer, som mange er bekendt med som RealVNC og TightVNC. Til denne tutorial installerer vi TightVNC på Pi. For at få adgang til den Pi-baserede TightVNC-session, skal du have en ekstern klient som:
- TightVNC desktop klient til Windows
- TightVNC desktop klient til Linux / Unix-lignende systemer
- RealVNC desktop klient til OSX
Grib en kopi nu, og vi vil trotte det senere i dette afsnit. Lad os nu komme ned for at installere TightVNC-serveren på din Raspberry Pi. Åbn terminalen. Indtast følgende kommando for at komme i gang:
sudo apt-get installer tightvncserver
Dette vil hente og pakke ud installationsfilerne Når du bliver bedt om at fortsætte, skal du trykke på Y. Når installationen er gennemført, vil du blive returneret til prompten. Du kan starte VNC på to måder. Du skal bare køre kommandoen til serveren som sådan:
tightvncserver
Vil bede dig om at indtaste et kodeord for at få adgang til dit VNC-skrivebord - som det ses på skærmbilledet ovenfor. Adgangskoden skal være 4-8 tegn lang. Når du har bekræftet adgangskoden, bliver du bedt om at indstille et adgangskode til adgangskode (du kan fravælge trinnet, som vi gjorde).
Alternativt kan du bruge en langt mere præcis, om end længere at skrive ud, kommando, der giver dig mere kontrol over, hvordan fjerncomputeren vil se skrivebordet - vigtigst af alt, hvilken opløsning skrivebordet vil vise, så du kan nyde en fuld skærmvisning på fjerncomputeren. Hvis du vil angive opløsningen på VNC-skrivebordet, skal du bruge følgende kommando, udskifte opløsningsværdien (det fjerde element i kommandoen) til opløsning af det fjerntliggende skrivebord:
vncserver: 1-geometri 1600 × 900 -depth 16-pixelformat rgb565:
Hvis du til enhver tid begår en fejl ved opsætningen af din VNC-server forekomst og / eller du vil lukke VNC-serveren, skal du blot indtaste følgende (ændre tallet efter kolonnet til antallet af VNC-forekomsten du vil dræbe) :
vncserver -kill: 1
Nu, da vi har VNC-serveren i gang, så lad os forbinde den fra vores fjernbetjening. Sluk TightVNC viewer på din computer og tilslut IP-adressen til Raspberry Pi-enheden efterfulgt af: 1 som sådan:
Og her er vores belønning for at konfigurere vores VNC-server med succes - en god fuldskærmvisning af vores fjernbetjening med Raspberry Pi:
Der er et kendt problem med TightVNC og Rasbian, at takket være en wonky tilladelsesændring vil det medføre problemer med det faktiske monitor-attached-skrivebordet (medens fjernelsen af den eksterne desktop-grænseflade, der leveres af VNC-serveren uberørt). For at løse dette problem, før det selv bliver et problem for dig, skal du gå til højre for kommandolinjen og indtaste følgende kommando:
sudo chown pi /home/pi/.Xauthority
Denne kommando ændrer ejerskabet af .Xauthority-filen tilbage til brugeren pi-for nysgerrige, .Xauthority-filen bruges af X-Windows-systemet i Rasbian og noget under installationen af TightVNC serveren og konfigurationsprocessen forårsager den lille tilladelse hikke.
Med den lille mindre omvej ud af vejen, lad os komme tilbage for at afslutte vores eksterne desktop konfiguration.
Nu hvor vi har fuld kommandolinje og desktopadgang til Raspberry Pi, er der en ikke-så trivial tweak, vi skal lave. Raspi-config-værktøjet indstillede SSH-serveren til automatisk at starte ved opstart for os, men VNC-serveren er endnu ikke konfigureret på en sådan måde. Du kan springe over dette trin og starte serveren manuelt på kommandolinjen via SSH, når du har brug for det, men vi forsøger at gøre dette så uindholdeligt som muligt til fremtidig brug. Lad os tage et øjeblik nu og oprette en startfil til VNC-serveren.
For at starte VNC-serveren automatisk, skal vi oprette en init- eller initialiseringsfil, som Raspbian skal bruge til at starte og lukke serveren rent under opstartsprocessen. Lad os nu oprette init-filen. På kommandolinjen skriver du følgende kommando:
sudo nano /etc/init.d/tightvnc
Dette vil oprette en fil i initialiseringskatalogen kaldet "tightvnc" og åbne nano-editoren, så vi kan indsætte i vores script. I nano-editoren indsætter du følgende kode (sørg for at ændre 1600 × 900 opløsningsværdien for at matche skærmen på din fjerncomputer:
#! / Bin / sh
### BEGIN INIT INFO
# Giver: tightvncserver
# Påkrævet-Start:
# Påkrævet-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Kort beskrivelse: start vnc-server
# Beskrivelse:
### END INIT INFOtilfælde "$ 1" i
Start)
su pi-c 'vncserver: 1-geometri 1600 × 900 -depth 16-pixelformat rgb565:'
ekko "VNC Started"
;;
hold op)
pkill Xtightvnc
ekko "VNC Termineret"
;;
*)
ekko "Anvendelse: /etc/init.d/tightvnc start | stop"
udgang 1
;;
ESAC
Ud over at ændre skærmopløsningsdelen af scriptet, er der en anden ting, du kan ændre. I linje 14 kan du ændre kommandoen "su pi -c" til en anden brugerkonto udover "pi", hvis du ønsker at VNC til det specifikke skrivebord til den konto.
Når du har indsat og ændret koden, er det tid til at gemme det. Tryk på CTRL + X for at afslutte og gemme dit arbejde i nano. Når du er tilbage på kommandolinjen, skal vi lave et par hurtige ændringer i tilladelserne i filen:
sudo chmod 755 /etc/init.d/tightvnc
Nu er initialiseringsfilen eksekverbar. Vi kan teste det fra prompten:
sudo /etc/init.d/tightvnc start
sudo /etc/init.d/tightvnc stop
Den sidste ændring, vi skal lave, er at opdatere rc.d-filen (hvilke spor som initiliseringsskripter er i /init.d/-mappen):
sudo update-rc.d tightvnc standardindstillinger
Når du har indtastet denne kommando, får du en bekræftelse på, at filen blev opdateret. Nu er det tid til den rigtige test: Uploades filen korrekt efter genstart? Indtast følgende på kommandolinjen for at genstarte og blive forberedt med din VNC-klient for at teste forbindelsen om et øjeblik:
sudo genstart
Når systemet er færdigstart, skal du logge ind med din VNC-klient. Hvis din VNC-session mislykkes, skal du besøge kommandoprompten og køre kommandoen tightvnc start (fra testdelen ovenfor) igen for at kontrollere, om filen er eksekverbar, og at adgangskoden blev gemt korrekt.
På dette tidspunkt er vi endnu længere sammen i vores mission om helt fjernbetjening af vores Raspberry Pi-enhed. Med fjernkommandolinjeadgang via SSH og ekstern desktopadgang via VNC under vores bælter, lad os fortsætte for at forenkle processen med at overføre filer mellem vores Pi og stationære computer.
Opsætning og konfiguration af filoverførselsværktøjer
Da vi allerede har SSH oprettet, er den nemmeste måde at oprette en simpel filoverførsel mellem vores Pi og fjerncomputere på at genoprette en GUI-grænseflade på SSH-forbindelsen. Husk, hvordan vi snakkede om at bruge SCP over SSH tidligere i tutorial? At køre det fra kommandolinjen bliver virkelig kedelig, rigtig hurtig. Med en GUI wrapper kan vi bruge mere tid på at flytte filer og lege med vores Pi og mindre tid på at peke på tastaturet.
Selvom der er en række GUI wrappers til SCP-kommandoen, vil vi gå med et krydsplatformværktøj, som mange allerede ved, har og elsker (og kan endda være uvidende om, at det gør SCP-overførsler): FileZilla. Den er tilgængelig til Windows, OS X og Linux-du kan få fat i en kopi her.
Når du har installeret FileZilla, skal du slukke det og gå til File -> Site Manager. Opret en ny sideindtastning, navngiv den, og tilslut brugernavn og kodeord til din Pi.
Endelig skal du sørge for at indstille porten til 22 og Servertype til SFTP - SSH File Transfer Protocol. Klik på forbindelsen nederst, og du bliver behandlet til en visning svarende til denne:
Dine lokale mapper findes i venstre rude, og fjernbetjeningerne på Pi er i højre rude. Flytning af filer mellem de to er så enkelt som at trække og slippe dem.
At udnytte den eksisterende SSH-filoverførsel er den nemmeste måde at komme til filerne på Pi uden yderligere konfiguration nødvendig men hvis du vil konfigurere din Pi til at modtage og dele filer uden at den fjerntliggende bruger kræver noget fancy værktøj (som en SCP-kompatibel FTP-klient som FileZilla), anbefaler vi stærkt at tjekke Samba konfigurationsdelen af vores guide: Sådan slår du en hindbær Pi til en lagringsenhed med lavt strømnetværk. Når du læser det, bliver du fortrolig med at oprette en grundlæggende Samba-del på Pi for at oprette en delt mappe, der er let tilgængelig ved næsten enhver på dit netværk uden yderligere værktøjer..
Du har konfigureret SSH, du har konfigureret VNC, og du har oprettet simpel SFTP og / eller Samba adgang til din Pi. På dette tidspunkt kan du starte din Raspberry Pi, fjerne skærmen, tastaturet og musen væk, og tag den væk som en stille og hovedløs maskine.
Har du en ide for Raspberry Pi-projektet, og du dør for os at skrive en tutorial for det? Lyt af i kommentarerne eller tag os en mail på [email protected], og vi gør vores bedste for at hjælpe.