Wat een jumphost doet
Een jumphost, ook wel bastion genoemd, is een server die u rechtstreeks kunt bereiken en die uw interne servers kan bereiken. Alleen de SSH-poort van het bastion is van buitenaf bereikbaar; de interne servers accepteren SSH uitsluitend vanaf het interne netwerk. Met ProxyJump opent uw client één SSH-verbinding naar het bastion en een tweede, van eindpunt tot eindpunt versleutelde verbinding via het bastion naar de doelserver. Het bastion stuurt het verkeer door, maar ziet de inhoud van de sessie niet, en uw privésleutel blijft op uw computer.
Verbinding maken vanaf de opdrachtregel
Met de optie -J geeft u de jumphost op. Scheid meerdere tussenstappen met komma’s; ze worden in de opgegeven volgorde gebruikt. Voeg de instellingen toe aan ~/.ssh/config als u regelmatig dezelfde route gebruikt, zodat een korte alias volstaat.
ssh -J admin@bastion.example admin@app.internal
ssh -J admin@bastion.example,ops@hop2.example admin@app.internal
# ~/.ssh/config
Host app-internal
HostName app.internal
User admin
ProxyJump admin@bastion.exampleControleer elke hostsleutel
Elke tussenstap is een afzonderlijke SSH-server met een eigen hostsleutel. Bevestig daarom de vingerafdruk van zowel het bastion als de doelserver via een ander betrouwbaar kanaal. Een gewijzigde sleutel bij een van de tussenstappen verdient dezelfde aandacht als bij een rechtstreekse verbinding. Vergelijk de vingerafdruk die bij de eerste verbinding wordt aangeboden met de waarde die een beheerder op de server uitleest.
ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub -E sha256Geef de voorkeur aan ProxyJump boven agentdoorsturing
Met agentdoorsturing (ssh -A) kan iedereen met voldoende rechten op het bastion uw geladen sleutels gebruiken zolang u verbonden bent. ProxyJump heeft dit niet nodig, omdat de authenticatie bij de doelserver vanaf uw eigen computer plaatsvindt. Bewaar ook geen privésleutels op het bastion en beperk wie zich daar mag aanmelden.
Veelvoorkomende problemen
Bepaal eerst welke tussenstap mislukt: maak alleen verbinding met het bastion en voer daarna ssh -vvv met -J uit om te zien waar de verbinding vastloopt. Als het bastion werkt maar de doelserver niet, ligt dat meestal aan een firewall ertussen, een onjuiste interne naam of een doelserver die uw sleutel niet accepteert. Een server die is ingesteld op AllowTcpForwarding no weigert als jumphost te fungeren.
Jumphosts in CH-J Server Manager
Alpha 0.1.1 maakt verbinding via een opgeslagen of handmatig ingevoerde jumphost, en opgeslagen hosts kunnen een keten van maximaal drie jumphosts vormen. Bij elke tussenstap wordt de hostsleutel gecontroleerd. De beschikbaarheidsmonitor controleert een server achter een jumphost alleen via een open sessie naar die jumphost; anders toont hij de server als niet geverifieerd, nooit als online. Beta 0.1.0 heeft deze functie niet.