It is actually really simple and well documented.
You have a host You want to connect to, but it is behind a linux (anything that has ssh server running on should do) box.
What You need to run is something like this
ssh -L 3387:192.168.0.10:3389 -l user -N ssh_box
on Your local client machine.
3387 - local port to use
192.168.0.10 - remote server where that service is running You need to connect to
3389 - the TCP port that remote service is running on
user - ssh username of course
ssh_box - ssh server Your service is behind of.
Isn't it frustrating when You start up a SSH session and it times out. Usually at the worst possible moment.
Using screen is good, but it comes to ones mind always after that dreadful timeout.
OpenSSH supports a thng called keepalive - a keepalive packet is sent after a predetermined interval of inactivity so SSH sessions should not time out.
Keepalive can be set on server side or client side.
Client side is usually better because then all possible connections are kept alive.
Client side:
edit
/etc/ssh/ssh_config
and enable