Well - depends on your entry criteria. If you use Automation Studio to populate a Data Extension, which injects subscribers to the journey, you might use Data Retention policy to help you.
What I have done earlier, is to set retention period of 6 months on records in journey Data Extension. In my query, I check if Subscriber Key exists in that DE, and if not, I allow it to be injected, otherwise it is omitted from being added to the journey.
When using Salesforce Data Entry Event, you can use Contact Action to set the date on which the Contact enters the journey (e.g. LastEntryDate).
And then use it as a criteria in Decision Split, being first step in the journey. I would have preferred having it as entry criteria - but unfortunately you can only have absolute dates in these criteria. Relative dates are only available in Decision Splits.
Remember to have the decision split before you set the LastEntryDate.
I know that this approach will show a higher number of Journey Entries than needed, but at least they will exit before being engaged with any emails in the Journey.