To access your computers from outside your local network (ie, remotely from your phone when it isn't connected to wifi), you need for forward the port(s) for whatever service you want to use. By default, ssh uses port 22, but that can be changed for security reasons to a different port (most brute force logon attacks are attempted over port 22).
However, by just doing that, you'd need to know your IP address to be able to connect to it. Many ISPs will change that IP occasionally, so there's no guarantee it will be what it was last time. This is where dynamic DNS services come into play. These services can provide you a domain name and forward it to your IP. To ensure the service knows your local IP, you keep a small script on your computer that will occasionally check your IP and will update the IP the service uses when needed.
Personally, I use
http://duckdns.org. They are a free service and allow like 4 different subdomains per account. The free services typically require you to use a subset of their name, so, mine is bassmadrigal.duckdns.org (I just have a blank page served by apache). They provide a linux script and cron command (or a GUI option, but I've never used that) to make updating the IP automatic whenever your computer is running.