These are the two solutions that I use.
SOCKS Public Proxy Launch SOCKS proxy on the public port on machine B
[machineB]$ ssh -ND <public_ip>:8080 user@machineC
or, do it from machine A (two jumps)
[machineA]$ ssh user@machineB ssh -ND <machine_b_public_ip>:8080 user@machineC
Then install your browser proxy on port 8080
Note. Verify that port 8080 is open on machine B's firewall.
Tunnel proxy SOCKS local proxy tunnel from machine B to machine A
Separate teams:
[machineB]$ ssh -ND 8080 user@machineC [machineA]$ ssh -L 8080:localhost:8080 user@machineB
or do it in one shot:
[machineA]$ ssh -L 8080:localhost:8080 user@machineB ssh -ND 8080 user@machineC
Now set your browser proxy to localhost on port 8080
source share