As IPv4 addresses become increasingly scarce it won’t be possible to hand out publicly routeable addresses to every user. The alternatives are things like CGNAT but that has a bunch of problems.
On the other hand the default suggested IPv6 allocation per user is a /48 subnet (which is 65,5536 /64 subnets each containing 18,446,744,073,709,551,616 addresses) which should be more than enough for anybody. More and more services slowly are making them selves available via IPv6.
So rather than run a dual stack IPv4/IPv6 network with a double NAT’d (at the home router and again at the ISP’s CGNAT link to the rest of the internet ) IPv4 address, we can run a pure IPv6 ISP and offer access to IPv4 via a NAT64 gateways to allow access to those services that are still IPv4 only.
If you often use ssh+tmux combination and ssh keys forwarding, you’ve definitely been in an unpleasant situation:
connect to some remote machine via ssh and create a tmux session
use it happily
detach from tmux and disconnect from server
connect again (e.g. next day) and attach to the tmux session
push something to git (or connect to another server)…
Permission denied (publickey).