ssh-reverse-tunnel
NOTE: For creating reverse tunnels, the best way is really to use OpenVPN in multi-client mode. It requires a little more setup than ssh-reverse-tunnel, but is a very robust solution.
ssh-reverse-tunnel allows you to set up tunnels so that you can connect to a computer which doesn't allow incoming connections. This is done by using a "server" computer which does accept incoming connections. The "client" which doesn't accept incoming connections connects to the server and sets up a reverse tunnel.
This package was tested on a system with the GNU Unix tools, please report if it works on other Unix systems.
The original documentation is the man page in the tarball.
Online Documentation:
The PDF or man page versions are preferred because the text version loses italics and bold fonts which are fairly important.