I run an SSH server on my main machine. What are the security risks here, and advantages/disadvantages to port forwarding or a DMZ?
Also, is there a way to tunnel an SSH server without making changes in the router?
SSH operates on a well-known port. You can reduce the number of criminal attacks by switching to an obscure port number (but note, obscurity is not security). These attacks are a nuisance which fill logs files and use resources.
The biggest risk is that you allow password authentication in SSH. Most break-in attempts try thousands of combinations of popular user names ("root", "john" etc) and popular passwords. Sooner or later they will guess correctly. The best solution is to only allow key-based logins and restrict logins to a specific list of user IDs.
Port Forwarding vs DMZ
Some router vendors have misused the term DMZ to mean wildcard port forwarding. Strictly speaking a DMZ is an isolated LAN segment where you place public facing servers. If those servers are taken over by criminals, the criminals still have no access to your internal LAN (where you keep any confidential or valuable data). I would use both port-forwarding an a true DMZ where possible.
Tunelling to SSH without port-forwarding.
The only way is to set up a reverse-tunnel to an external rendezvous point.