I run a ssh server behind a NAT router (using Linux ipchains on Freesco).

I can assure you that the source port used on a TCP server connection is always the same port as the client connected to. It never comes from a different port.

A correctly configured dynamic NAT box will know this, and translate the port numbers correctly. I have been using a similar configuration successfully (under IP Masquerading on Linux 1.3 initially) since before 1997.

This is not a problem specific to ssh - ssh does not behave in a way different from anything else. It is your router's NAT rule configured incorrectly.

Setting your ssh client to use a static source port is not the answer - just get your NAT to work correctly.

Slarty