A contrarian approach to bmike's answer would be to utilize a Dynamic DNS (DDNS) to give you DNS services to your dynamically assigned IP address. You will need to configure your firewall to allow/forward ports as necessary, but on the flip side, it gives you far more options (like hosting your own web servers)
There are many DDNS providers; some paid, some free. I personally recommend FreeDNS as they are free (as in beer) and compatible with a number of routers and virtually all operating systems.
Basically, you'll register on their site by selecting a TLD and then adding your host info. For example:
myhost.example.com They''l assign you to
example.com but you can choose the name of your host (
myhost). From there, anywhere on the web you can reach your home by going to
You can forward all traffic from port 22 (SSH) from the router directly to your server. In fact, your can use a non-standard port (i.e. 40022) on the firewall for added security. When you SSH, you just specify the port and the firewall will forward it appropriately.
ssh firstname.lastname@example.org -p 400222
The same hold true for SCP and SFTP as well. You'll need to consult your router's setup guide for specifics on port forwarding.
There are a number of clients available that work on routers or on the system. If your router supports it, use that client. If not, install the client on your server and have it update periodically.