SSH remote access vpn tunnel
Solution 1:
This ought to do it for you (from bar):
ssh -R2222:localhost:22 foo
Then, on foo:
ssh localhost -p 2222
The first connection opens a remote port forward, which makes port 2222 on foo forwarded to port 22 on bar. So, if you ssh to port 2222 on foo, you are really connecting to bar. You can then add whatever forwards you need to through that ssh connection, to forward any other ports.
Solution 2:
Under Centos the answer appears to be as follows:
on bar (the restricted machine) run the following command:
ssh -N -R 1234:localhost:22 foo.theinternet.com
then on foo (the open machine) run:
ssh -p 1234 localhost
I suspect there are refinements to be made to this, but hopefully it will be enough to get any googlers started.
Thanks to pkaeding for putting me on the right track.