Hvordan få tilgang til en ekstern server ved å bruke en Jump Host


En hoppvert (også kjent som en hoppserver) er en mellomvert eller en SSH-gateway til et eksternt nettverk, gjennom hvilken en tilkobling kan opprettes til en annen vert i en ulik sikkerhetssone, for eksempel en demilitarisert sone (DMZ). Den bygger bro mellom to forskjellige sikkerhetssoner og tilbyr kontrollert tilgang mellom dem.

En hoppvert bør være svært sikret og overvåket, spesielt når den spenner over et privat nettverk og en DMZ med servere som tilbyr tjenester til brukere på internett.

Et klassisk scenario er å koble fra din stasjonære eller bærbare datamaskin fra bedriftens interne nettverk, som er svært sikret med brannmurer til en DMZ. For enkelt å administrere en server i en DMZ, kan du få tilgang til den via en hoppvert.

I denne artikkelen vil vi demonstrere hvordan du får tilgang til en ekstern Linux-server via en hoppvert, og vi vil også konfigurere nødvendige innstillinger i SSH-klientkonfigurasjonene dine per bruker.

Tenk på følgende scenario.

I scenariet ovenfor vil du koble til HOST 2, men du må gå gjennom HOST 1 på grunn av brannmur, ruting og tilgangsprivilegier. Det er en rekke gyldige grunner til at jumphosts er nødvendig.

Dynamisk Jumphost List

Den enkleste måten å koble til en målserver via en hoppvert er å bruke -J-flagget fra kommandolinjen. Dette forteller ssh å opprette en tilkobling til hoppverten og deretter etablere en TCP-videresending til målserveren derfra (sørg for at du har passordløs SSH-pålogging mellom maskiner).

$ ssh -J host1 host2

Hvis brukernavn eller porter på maskiner er forskjellige, spesifiser dem på terminalen som vist.

$ ssh -J [email :port [email :port	  

Liste over flere Jumphosts

Den samme syntaksen kan brukes til å hoppe over flere servere.

$ ssh -J [email :port,[email :port [email :port

Statisk Jumphost List

Statisk jumphost-liste betyr at du kjenner jumphosten eller jumphostene du trenger for å koble til en maskin. Derfor må du legge til følgende statiske jumphost 'ruting' i ~/.ssh/config-filen og spesifisere vertsaliasene som vist.

### First jumphost. Directly reachable
Host vps1
  HostName vps1.example.org

### Host to jump to via jumphost1.example.org
Host contabo
  HostName contabo.example.org
  ProxyJump vps1

Prøv nå å koble til en målserver via en hoppvert som vist.

$ ssh -J vps1 contabo

Den andre metoden er å bruke ProxyCommand-alternativet til å legge til jumphost-konfigurasjonen i filen ~.ssh/config eller $HOME/.ssh/config som vist.

I dette eksemplet er målverten contabo og jumphosten er vps1.

Host vps1
	HostName vps1.example.org
	IdentityFile ~/.ssh/vps1.pem
	User ec2-user

Host contabo
	HostName contabo.example.org	
	IdentityFile ~/.ssh/contabovps
	Port 22
	User admin	
	Proxy Command ssh -q -W %h:%p vps1

Hvor kommandoen Proxy Command ssh -q -W %h:%p vps1, betyr å kjøre ssh i stille modus (ved å bruke -q) og i stdio-videresending (ved å bruke -W)-modus, omdirigere forbindelsen gjennom en mellomvert (vps1).

Prøv deretter å få tilgang til målverten som vist.

$ ssh contabo

Kommandoen ovenfor vil først åpne en ssh-tilkobling til vps1 i bakgrunnen utført av ProxyCommand, og deretter starte ssh-økten til målserverens kontakt.

For mer informasjon, se ssh man-siden eller se: OpenSSH/Cookbxook/Proxies and Jump Hosts.

Det er alt for nå! I denne artikkelen har vi demonstrert hvordan du får tilgang til en ekstern server via en hoppvert. Bruk tilbakemeldingsskjemaet nedenfor for å stille spørsmål eller dele tankene dine med oss.