I looked at the router firewall admin webpage. There is a public port and a private port for forwarding. Suppose at work I'm ssh'ing out port 21 and I have sshd listening on port 22 (the standard port) with the port forwarding set for tcp 22/22. Can I leave the forwarding rule as it is and add a new rule that has public port 21 and prive port 22? In other words, can I take traffic from port 21 on my work pc and forward them to port 22 on my home pc behind the firewall? Do I understand this correctly?
Yes, the ports must match. If you have the daemon listening on port N, you must tell the client to use port N, also. Otherwise the client will try port 22 and since there's nothing listening on port 22, nothing will happen.
As Rick said, but additionally, as I indicated last evening, if you are going from work to your house, and your house has a firewall or router, then you need to set up port forwarding on your firewall or router to point the incoming port 21 traffic (if that's what you end up using) to the specific internal machine you want to talk to at home. You seem to have understood that in your original question, but I'm not sure any of us said exactly 'Yes', so I am. ;-)
Good luck, Mark