This is actually a relatively common problem, with no real solutions.
Alternatives include setting up rules on your router, only allowing specific IPs to connect (though that will require your friends and family have static IPs), setting up a ssh route (though this just moves the problem to another port) or just ignoring it.
As a general rule, this is one good reason to run it on a server; so you don't expose your own work (and play) pc to the internet. With a linux server, you generally get good enough separation between accounts to not having to worry about the attack surface.