"There are two primary reasons to use ssh for tunneling. Before
I give those reasons, I'll describe what tunneling is.
"Tunneling with ssh is the process of wrapping some network
communication with the encrypted ssh protocol. Tunneling involves
an ssh client connecting to an ssh server, just as in "regular
cases." But when the ssh client connects to the server, the client
specifies the source and the destination for the tunnel.
"The source is simply a bound network port that other processes
can connect to. This port must either be managed by the ssh client
or the ssh server.
"The destination is another bound network port; but this time,
it's some other network server that the other end of the ssh tunnel
can communicate with. If this seems a bit unclear, don't worry;
I'll get into more detail shortly with an example. For now, you can
just think of ssh tunneling as secure port forwarding."