SSH ProxyForward

av | 19 maj, 2016

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.