en hoppvärd (även känd som en hoppserver) är en mellanvärd eller en ssh-gateway till ett fjärrnätverk, genom vilket en anslutning kan göras till en annan värd i en annan säkerhetszon, till exempel en demilitariserad zon (DMZ). Det överbryggar två olika säkerhetszoner och erbjuder kontrollerad åtkomst mellan dem.
en hoppvärd bör vara mycket säkrad och övervakad, särskilt när den sträcker sig över ett privat nätverk och en DMZ med servrar som tillhandahåller tjänster till användare på internet.
ett klassiskt scenario är att ansluta från din stationära eller bärbara dator från ditt företags interna nätverk, vilket är mycket säkert med brandväggar till en DMZ. För att enkelt hantera en server i en DMZ kan du komma åt den via en hoppvärd.
i den här artikeln kommer vi att visa hur du kommer åt en fjärr Linux-server via en jump host och vi kommer också att konfigurera nödvändiga inställningar i dina SSH-klientkonfigurationer per användare.
Tänk på följande scenario.
i ovanstående scenario vill du ansluta till värd 2, men du måste gå igenom värd 1 på grund av brandvägg, routing och åtkomstbehörighet. Det finns ett antal giltiga skäl till varför jumphosts behövs..
dynamisk Jumphost-lista
det enklaste sättet att ansluta till en målserver via en hoppvärd använder flaggan -J
från kommandoraden. Detta berättar för ssh att ansluta till hoppvärden och sedan upprätta en TCP-vidarebefordran till målservern, därifrån (se till att du har Lösenordslös SSH-inloggning mellan maskiner).
$ ssh -J host1 host2
om användarnamn eller portar på maskiner skiljer sig, ange dem på terminalen som visas.
$ ssh -J username@host1:port username@host2:port
flera Jumphosts lista
samma syntax kan användas för att göra hopp över flera servrar.
$ ssh -J username@host1:port,username@host2:port username@host3:port
statisk Jumphost lista
statisk jumphost lista betyder, att du vet jumphost eller jumphosts som du behöver för att ansluta en maskin. Därför måste du lägga till följande statiska jumphost ’routing’ i ~/.ssh/config
fil och ange värd alias som visas.
### First jumphost. Directly reachableHost vps1 HostName vps1.example.org### Host to jump to via jumphost1.example.orgHost contabo HostName contabo.example.org ProxyJump contabo
försök nu ansluta till en målserver via en hoppvärd som visas.
$ ssh -J vps1 contabo
den andra metoden är att använda alternativet ProxyCommand för att lägga till jumphost-konfigurationen i din ~.ssh/config
eller $HOME/.ssh/config
fil som visas.
i det här exemplet är målvärden contabo och jumphost är vps1.
Host vps1HostName vps1.example.orgIdentityFile ~/.ssh/vps1.pemUser ec2-userHost contaboHostName contabo.example.orgIdentityFile ~/.ssh/contabovpsPort 22User adminProxy Command ssh -q -W %h:%p vps1
där kommandot Proxy Command ssh -q -W %h:%p vps1
betyder kör ssh i tyst läge (med -q
) och i stdio forwarding (med -W
) läge, omdirigera anslutningen via en mellanliggande värd (vps1).
försök sedan komma åt din målvärd som visas.
$ ssh contabo
ovanstående kommando öppnar först en ssh-anslutning till vps1 i bakgrunden som utförs av ProxyCommand, och därefter startar ssh-sessionen till målserverns contabo.
för mer information, se SSH man-sidan eller hänvisa till: OpenSSH/Cookbxook/Proxies och Jump Hosts.
det är allt för nu! I den här artikeln har vi visat hur man kommer åt en fjärrserver via en hoppvärd. Använd feedbackformuläret nedan för att ställa frågor eller dela dina tankar med oss.