You can put the bare repo on a server and then use ssh. Dead simple and works great if you have a dev server where all developers have access to anyway.
GitHub seems to be the second-best option ( sometimes the first ), but when you have unlimited non-paid private repos your mind goes also unlimited : I serve my important configuration files, various scripts, small personal projects, even my bank statements on a git repo, hosted on my personal server. But if every repo costed me 2$ per month, I doubt I would do that.