19Aug

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 fjernadgang til shell, desktop og filoverførsel 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 ud af det - for mange projekter behøver du simpelthen ikke en permanent skærm og perifert akkompagnement.

At ikke betyder, at du ikke behøver at oprette forbindelse 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, oghak 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 komforten på vores stationære computer, som om viJeg har koblet enheden til en fuld arbejdsstation.

Hvad skal jeg bruge?

Hvis du er helt ny til at arbejde med Raspberry Pi, anbefaler vi stærkt at tjekke ud HTG Guide til Kom i gang med Raspberry Pi for at få et håndtag på enhedens grundlæggende og få fart.

Til denne øvelse skal du have 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.

Først skal de fleste trin i denne tutorial arbejde sammen med andre Linux-baserede Pi-distributioner , men skal vi 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 Server

Fjernkommandolinjeadgang til din Raspbian-installation handler om den handyste lille tweak du kan lave til dit system, og det er nemmere at aktivere.

Åbn terminalen i Rasbian, genvejen 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 Enable og trykke på Enter igen. Du vil blive returneret til Raspi-config panelet;naviger ned til Afslut og tryk Enter for at lukke konfigurationsværktøjet. Det er alt hvad du skal gøre for at aktivere SSH-adgang til din Pi. Standard SSH login og adgangskode er henholdsvis pi og hindbær .

Mens du stadig sidder på kommandolinjen, er det nu en god tid at tjekke din Raspberry Pi-enhedens IP på det lokale netværk. Skriv ifconfig ved prompten og se derefter på kommandoen. Hvis du bruger Ethernet-porten, vil du søge efter init addr i eth0 sektionen;Hvis du bruger Wi-Fi, vil du søge efter init addr i wlan0 sektionen. 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 efter IP'en i fremtiden.

Nu hvor vi har SSH-serveren aktiveret, kender vi login, og vi kender maskinens IP-adresse, det er på tide 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 imidlertid bruge en SSH-klient som PuTTY.

Da vi bruger en Windows-boks til fjernstyring af vores Pi, PuTTY er det. Installer en kopi af PuTTY eller tag den bærbare version ud og sluk den. Der er meget af indstillinger, du kan rod i PuTTY, men vi behøver kun bekymre os om en enkelt ting at forbinde til vores Pi. På hovedgrænsefladen skal du bare indtaste din Pi's IP-adresse og vælge SSH nedenfor:

Hit Åbn nederst, og PuTTY vil starte et terminalvindue til dig, forbinde til din Pi og bede dig om atlog ind. Fortsæt og log ind med pi / hindbær :

Når din SSH-forbindelse er funktionel, kan du teknisk afslutte resten af ​​denne tutorial eksternt fra skrivebordets komfort - selv om vi ville råde over at forlade hovedet og tastaturetpå dit system, indtil du er færdig med 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 din fjernskrivebord

Fjernkommandolinjen er fantastisk, men det har også adgang til skrivebordet til GUI-fokuserede aktiviteter. Lad os bringe kommandolinjens beføjelser og magtene på skrivebordet sammen.

Selvom 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 bruge en fjernklient som:

  • TightVNC-desktopklient til Windows
  • TightVNC-desktopklient til Linux / Unix-lignende systemer
  • RealVNC-desktopklient til OSX

Tag en kopi nu, ogvi vil fremstille 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, bliver du returneret til prompten. Du kan starte VNC på to måder. Du skal bare køre kommandoen til serveren som sådan:

tightvncserver

Anmoder 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 angive 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, hvilken opløsning skrivebordet vil vise, så du kan nyde en fuld skærmvisningpå fjerncomputeren. Hvis du vil angive opløsningen på VNC-skrivebordet, skal du bruge følgende kommando og bytte 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 på et hvilket som helst tidspunkt gø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 nummeret efter kolonet til nummeret på det VNC-eksempel, du vil havedræbe):

vncserver -kill: 1

Nu da vi har VNC-serveren i gang, lad os forbinde den fra vores fjernbetjening. Slå op TightVNC viewer på din computer og tilslut IP-adressen til Raspberry Pi-enhed 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 Raspberry Pi-enhed:

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 endda 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-forden nysgerrige,. Xauthority-filen bruges af X-windows-systemet i Rasbian og noget under installationen og konfigurationen af ​​TightVNC-serveren forårsager den lille tilladelse hiccup.

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 lave init-filen nu. Ved kommandolinjens type i følgende kommando:

sudo nano /etc/init.d/ tightvnc

Dette vil oprette en fil i initialiseringsmappen 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
# Tilbyder: tightvncserver
# Påkrævet-Start:
# Påkrævet-Stop:
# Default-Start: 2 3 4 5
# Standard-Stop: 0 1 6
# Kort beskrivelse: start vnc server
# Beskrivelse:
### END INIT INFO

tilfælde "$ 1 "i
start)
su pi -c 'vncserver: 1-geometri 1600 × 900 -depth 16-pixelformat rgb565:'
ekko 'VNC Startet'
; ;
stop)
pkill Xtightvnc
ekko "VNC Termineret"
; ;
*)
ekko "Anvendelse: /etc/init.d/ tightvnc{ start | stop}"
exit 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 ud over "pi", hvis du ønsker at VNC til det specifikke skrivebord til den pågældende 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 foretage et par hurtige ændringer af tilladelserne i filen:

sudo chmod 755 /etc/init.d/ tightvnc

Nu er initialiseringsfilen eksekverbar. Vi kan teste det fra prompten:

sudo /etc/init.d/ stramme start

sudo /etc/init.d/ tightvnc stop

Den sidste ændring, vi skal lave, er at opdatere rc.d filen( hvilke spor som initilization scripts er i /init.d/ mappen):

sudo update-rc.d tightvnc standardindstillinger

Når du har indtastet den 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 på 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, at 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 arkiveringsvæ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 lave en GUI-grænseflade på SSH-forbindelsen. Husk, hvordan vi snakkede om at bruge SCP over SSH tidligere i tutorial? Kører 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, går vi 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 - & gt;Site Manager. Opret en ny sideindtastning, navngiv det, 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 vil blive 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.

Ved 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 skifter du en Raspberry Pi til en Low-Power Network Storage Device. Hvis du læser det, vil du blive 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 det væk som en stille og hovedløs maskine.

Har du en ide for Raspberry Pi-projektet, og du er ved at dø for os at skrive en vejledning til det? Lyt af i kommentarerne eller tag os en mail på [email protected], og vi gør vores bedste for at hjælpe.