Me and my team work full-time on a popular open-source project. Based on our collective experience I can tell you about 3 different ways.
- The first way is to become a key contributor and maintainer for an open-source project with significant financial backing, and then get co-opted by one of the organizations providing the backing. As an obvious example, a significant Linux contributor or maintainer will have no problem getting a job at dozens of technology companies. In our case, we are constantly scanning the mailing list and irc channel for the most consistently helpful and reliable contributors. If you follow this route, make sure you pick a project you're passionate about and won't mind working on for a long time, focus on being reliable rather than impressing with your technical skills, and make sure to go beyond adding cool features: help other users, improve the documentation, review patches, fix small bugs, etc. I can't emphasize reliability enough. In a really successful project, the maintainers are usually busy and overwhelmed with demands. Be the person they can rely on, consistently, and you will earn their trust.
- The second way is to join a technology company with an open-source team, and be assigned to an open-source project. For example 2 of my co-maintainers joined as employees before the open-source project launched, and were assigned to this team via the normal company process. This will usually get you into a project in its early stages, when it is not yet large or popular enough to hire from the pool of existing contributors. In our case, we now hire almost exclusively out of the project's community.
- The third way is to turn your own project into a source of income. This means either hope that your project becomes popular enough to attract financial backing on its own (also known as "winning the lottery"), or secure funding yourself. Remember that open-source software is like music, writing and web apps: lots of people love doing it, and the barrier to entry is low, which means it's a buyer's market. There simply aren't enough dollars available for everyone to make a living scratching their own itch. Consider finding a job which can accommodates time for side-projects. Make sure your project is its own reward, see how successful it becomes, and adjust your financial expectations as you go. There are sources of funding like Gittip which might make this more feasible - I don't know. Or you could do what I did, and start a business around your project, keep at it until it's successful, find a great CEO to replace you, and finally enjoy your reward as the maintainer of the project you worked so hard to make possible. I'm not sure I would recommend it - it worked, but took me 6 years, most of which with very little time to write code, and an amount of work and stress I would not wish on anyone. But when it works, it's the best :)
I'm always happy to talk about this more if you're interested. You can find my contact in my profile.