ProxyForward
Eftersom internet är fullt av trasiga exempel så kommer här hur Fredrik använder ProxyForward:
Låt oss säga att du från din lokala dator vill SSHa till servern (Sune) via din jump-host (jumper):
Det här stoppar du in i din .ssh/config:
host jumper hostname min.externa.jumphost.example.com user fredrik host sune hostname sune.serverpark.com user root ProxyCommand ssh -q -W %h:%p jumper
På din lokala dator behöver du bara skriva ssh sune, och vips är du inloggad på sune, via jumper!
Du behöver inte heller tänka på jumper när du vill använda SCP/rsync osv, utan kör bara direkt till sune, ProxyCommand löser resten. Det funkar oxå fin-fint att SSHa via flera hostar genom att bara fortsätta på samma sätt.
Extra tips #1: DynamicForward:
DynamicForward är en väldigt smidig lösning där SSH automatiskt agerar proxyserver åt dig. Det brukar jag använda om jag vill tunnla t.ex. web-trafik via en extern host utan att behöva sätta upp nån slags VPN och proxylösning (läs privoxy/squid/polipo). Slänga bara med -D <port>:
ssh -D 1234 vps.example.com
När du är ansluten sätter du proxy i din browser till localhost:1234 (jag använder ett Chrome plugin för att enkelt byta till proxyn), och sen kommer allt du surfar ut via din VPS.
Extra tips #2: ForwardAgent
Egentligen kan väl alla redan det här, men hur som helst: Om du inte orkar greja med ProxyForward så kan du använd -A när du vill in på en burk via en annan:
ssh -A host1.example.com user@host1: ssh internt.example.com
Så länge du har din publika SSH-nyckel på internt.example.com kommer du automatiskt komma in på den eftersom du nu effektivt har forwardat din ssh-agent till host1. Se dock bara till att host1 är en betrodd host, annars kan någon med root läsa din nyckel från minnet på host1.