I often find I want a file on my home machine when I'm out and about, so I would like to set up ssh server on my home machine to be able to login securely over the internet. It's my understanding that this requires to set up some port forwarding on my ADSL router at home, and then I can ssh in (using the ADSL router's IP address) and it should be secure using a public/private key pair I can make with ssh-keygen.
My question is, doesn't it require my router's IP address to be static or known beforehand? As far as I know my ISP might change my IP address dynamically, so I might find I can't log in some days without going home and googling for "What's my IP address?". Is there a usual way around this, and how frequently do consumer ISPs change your IP address typically anyway?
As well as a massive amount of files, I also want access to processes and devices, so I'm not interested in cloud or dropbox like answers.