If you want to connect to your home system via ssh (I do that), then there are several situations that may apply:
1. Your ISP provides you access via a dynamic ip address. This means that your external ip address, that is the one that is accessible from the internet, may change. Often it remains the same for days, but your isp may renew it at intervals or it may be renewed when you disconnect your router/modem for some reason, such as the power going out. This leaves you with a new external ip address
In this situation, you can use a public (free or payable) dynamic DNS service, who keep a permanent external address for you by mapping your changing isp allocated address to a fixed one they provide - it is typically done with a 'www-type' name rather than a set of octets such as 111.222.333.456
2. You may be able to do something like this yourself by monitoring you external ip address at home and then emailing or texting yourself the new external ip address when it changes. You then connect to this new ip address, albeit with a a small delay.
3. You may be able to pay your isp to allocate you a fixed ip address - you get 111.222.333.456 and can always access your home using that ip address.
4. You have a dastardly isp who have decided to use double natting (sometimes known as carrier grade nat) where they allocate you an ip address that is NOT accessible from the internet. The ip address allocated is one of the private non-routable addresses, such as 192.168.123.456 They then aggregate users and only allocate external, internet-routable addresses at a concentration point on their system.
This situation means that you cannot use a 3rd party dynamic dns provider to give you an externally accessible ip address. Also the isp may not provide static ip addresses - even for a fee. And it doesn't work by texting or emailing yourself the allocated ip address because it's not directly accessible from the internet.
You guessed it - that's my isp.
In this case, as far as I can see, you have to use a third party VPN server service. Your home system contacts the third party, creating an outgoing route and your remote user also uses the same third party server again making an outgoing connection and the third party server makes a VPN connection between the two. Logmein Hamachi is just such a service.
Even if you don't need this service, Logmein Hamachi can be used instead of a dynamic dns service and makes your home server appear to be on a 'local' network with the remote machine.
LogMeIn's web page says 'LogMeIn Hamachi is a hosted VPN service that lets you securely extend LAN-like networks to distributed teams, mobile workers and your gamer friends alike. In minutes.' Go to http://www.LogMeIn.com
Select - Products - LogMeIn Hamachi.
Logmein Hamachi currently offers a free service for I think up to 5 machines.
I am away from home, but I can browse my server's shares just as though I was at home (apart from being a lot slower).
I use ssh to connect over this arrangement so as to maintain privacy, and all connections to home use ssh tunnels.
I can connect to in-home ip cameras, various RPi's and a network storage device on my home network.