Å ha muligheten til å SSH i Guest OS kan være nyttig når du ikke vil bruke GUI på den virtuelle maskinen din. Bare start din VM i hodeløs modus og SSH inn og ut av den uten å ha flere vinduer åpne i terminalen.
For de som er nye med ideen om SSH, vil vi ha en kort introduksjon til SSHs arbeid før vi dykker ned i oppsettet. Vi trenger også å diskutere nettverksrelaterte innstillinger for din VM for å sikre at du har tilgang til den virtuelle maskinen fra hvor som helst i ditt LAN.
Hvordan SSH-nøkler fungerer?
Her er forenklet modell for hvordan SSH fungerer. Du oppretter et par nøkler på din lokale datamaskin. En offentlig nøkkel og en privat nøkkel. Meldinger kryptert med offentlig nøkkel kan dekrypteres ved hjelp av den private nøkkelen og omvendt. Disse tastene lagres vanligvis på din lokale datamaskin i en bane ~ /.ssh / id_rsa
(privat nøkkel) og~ /.ssh / id_rsa.pem
(den offentlige nøkkelen).
Deretter går du til den eksterne serveren din, logger på en konsoll som en vanlig eller rotbruker, åpner filen ~ /.ssh / autoriserte_taster
serveren. Her skriver du inn innholdet i den offentlige nøkkelen slik den er. Når det er gjort, kan du ssh som den brukeren på serveren hvis .ssh-katalogen har de autoriserte tastene fra din lokale enhet.
De .pem utvidelse betyr at filen er den offentlige nøkkelen du kan dele med hvem som helst. De id_rsa del betyr bare hvilken krypteringskryptering som brukes (i dette tilfellet er det RSA). Den private nøkkelen kan videre beskyttes av en passordfrase som du må angi, hver gang du vil logge på en ekstern server ved hjelp av den private nøkkelen.
Hvis du har en Mac, Linux eller et annet UNIX-lignende system som din lokale datamaskin, kan du generere og administrere nøkler ved hjelp av terminal, og du kan også SSH til eksterne servere ved hjelp av samme terminal. For Windows-brukere vil jeg foreslå at du bruker PuTTY eller Git Bash, sistnevnte er min personlige preferanse. Kommandoene er ganske like når du har en SSH-klient.
Oppsett av SSH-taster
Forsikre deg først om det ikke er noen ssh-nøkler i hjemmekatalogen din. Sjekk innholdet i hjemmekatalogen din .ssh mappe. Hvis du er i tvil, må du sikkerhetskopiere innholdet før du utfører følgende kommando. Programmer som Filezilla bruker SSH-nøkler hele tiden, uten brukerens viten, så dette trinnet er ganske avgjørende.
I din lokal maskin, åpne terminalen og skriv inn kommandoen:
$ ssh-keygenDette vil bli fulgt opp av følgende instruksjoner med verdier i parentes som indikerer standardverdiene. Fortsett med instruksjonene og gi nøklene dine en sikker passordfrase.
Bekreft at nøklene er opprettet ved å sjekke innholdet på ~ /.ssh mappe.
$ ls -al ~ /.sshHvis du ser filer som samsvarer med standardverdiene, vises i ssh-keygen spør så alt har fungert bra.
Åpne nå en konsoll til din Virtuell maskin. Sjekk først om din VM har SSH-server som kjører eller ikke.
$ service sshd status
Hvis den ikke er installert, bruker du pakkebehandling til å søke etter og installere OpenSSH-serveren. Når det er gjort, må du sørge for at den brannmuren til din VM er åpen på port nummer 22. For eksempel, hvis du bruker Ubuntu som en VM, er standard brannmur ufw bør enten være deaktivert eller tillate port 22-tilkoblinger slik:
$ sudo ufw status
Hvis hvis ikke er åpen i port 22, bruk følgende kommando:
$ sudo ufw tillate sshÅpne deretter filen ~ /.ssh / autoriserte_taster på den virtuelle maskinen din, ved hjelp av din favoritt teksteditor. Det kan være lurt å aktivere vert-til-gjest eller toveis utklippstavle for dette neste trinnet.
Inne i denne filen (nederst i filen, hvis den ikke er tom), lim inn innholdet i filen offentlig nøkkel. Den siste delen der det står navnet ditt og den lokale verten der nøklene ble generert, er ikke så viktig som resten av strengen.
(Valgfritt) Bruker ikke SSH-nøkler
Hvis du stoler på det lokale nettverket ditt, kan du bruke den mindre sikre metoden for å bruke UNIX-passordet ditt, for å ssh inn i den virtuelle maskinen din. Åpne filen / etc / ssh / sshd_config på din VM og erstatt linjen:
#PasswordAuthentication noTil
PasswordAuthentication ja
Når det er på plass, start SSH-serveren på nytt.
$ service sshd start på nyttNå kan du bruke det vanlige passordet som du bruker til å logge inn på den virtuelle maskinen din for å ssh inn i den også.
Din virtuelle maskin og nettverk
For at du skal ssh inn i den virtuelle maskinen din, bør både den lokale datamaskinen din (den med den private nøkkelen) og den virtuelle maskinen være på samme nettverk. Så du kan nå den virtuelle maskinens IP-adresse. Vi viser deg hvordan du legger til VM i LAN.
La oss se på eksemplet på et typisk hjemmerouteroppsett. Datamaskinen din, sammen med andre enheter, er koblet til hjemmeruteren. Denne ruteren fungerer også som en DHCP-server, noe som betyr at den tildeler hver enhet som er koblet til den, en unik privat IP-adresse. Skrivebordet ditt får IP, det samme gjør telefonen og den bærbare datamaskinen. Bare enhetene som er koblet til denne ruteren kan snakke med hverandre via deres IP-adresser.
Aktiver brokoblet nettverksmodus i innstillingene til den virtuelle maskinen, og den virtuelle maskinen vil vises som koblet til hjemmeruteren din (eller en lignende DHCP-server) med en privat IP. Hvis en annen enhet er koblet til det samme nettverket (for eksempel til den samme hjemmeruteren), kan den brukes til å ssh inn i VM.
Åpne VirtualBox Manager, velg mål-VM, åpne Innstillinger → Nettverk og velg Bridge Networking i stedet for NAT.
Som du kan se, er verten min koblet til ved hjelp av trådløs, slik at tilkoblingen også deles av VM, hvis du bruker Ethernet, vil et annet grensesnittnavn dukke opp som er greit.
Nå, min VM, som heter ubuntuvm, dukker opp på LAN-oppsettet mitt som følger. Sjekk ruteren din for å se om det samme fungerer for deg.
Når du vet IP-adressen til den virtuelle maskinen din, kan du SSH inn i den ved å kjøre kommandoen:
$ ssh
Hvis du har lagt inn en passordfrase for din private nøkkel i trinnene ovenfor, vil du bli bedt om å angi den på nytt.
Det er det! Nå kan du starte virtuelle maskiner i hodeløs modus og bare ssh inn i dem fra hvor som helst i huset ditt. Håper du syntes denne opplæringen var interessant, gi oss beskjed hvis det er noe emne du vil at vi skal dekke.