I think that´s not the whole story. You have to think of "reaching it via an IP-adress from anywhere outside your home network". Most IP adresses (given by the provider) aren´t static and the given one could be changed every ~24 hours. Please don´t mix up "home IP-adresses" (LAN) with WAN IP-adresses. Those differ! You have to be sure, that it´s always able to reach your home network with the same IP-adress (like a website). This can be done with services like "dyndns.org" (or similar services) if you create a free user account.
You can check your WAN IP adress with:
www.whatismyip.com
If you enter this site, you will see something like: 80.25.120.12 (just an example). This is your WAN IP adress. Your router has 192.168.0.1 (or similar). So, if you want to reach your device you have to do a port forwarding to the IP adress of your device in your home networt (port forwarding port 22 to IP 192.168.0.100 for example to access ssh to your linux machine) in your router. Then, when you are outside your home network (visit a friend), you have to know your WAN IP adress and enter this at a webbrowser or putty or something else. Services like DynDNS will give you a new static IP adress and change your given WAN IP to whatever the provider provides. Remember...the provider changes your WAN IP every ~24 hours. DynDNS will notice that and change this for you, so that your given DynDNS adress will always be redirected to the "new" WAN IP.
If you use a FritzBox you can use "MyFritz", which is a related service to DynDNS.
But for all of those services you have to create an account.
I think DMZ is not absolutely neccessary, because this zone (mostly only one IP adress can be set to this zone iirc) only isn´t controlled by the internal firewall of the router. Portforwarding does the same, if you know which ports are used/in need of. But yes...you can do this via DMZ too...but be carefull...after this, none of the ports, to the IP adress set in there, aren´t whatched by the firewall.
Greetings