I'm in key largo, definitely not any reefs within swimming distance. And public beaches are difficult to find as well..
If you are going on a cruise then the port will be in key west. Honestly key west isn't as hot as key largo for snorkeling. The better snorkeling will be about 20mins-60mins north of key west..
You are doing a cruise so your time is probably limited. Do you know how long you will be in key west? If you have the time I recommend the dry tortugas ferry tour. It's about $150 per person but it's a great trip.
If you don't like both options try a local excursion but to me it's not worth it compared to what I've seen in other areas. I prefer to enjoy the nightlife/bars/restaurants when I go there. One place I highly highly recommend if you have a sweet tooth is, Mattheessen's, best cookie and fudge you will ever eat.. Enjoy your vacation!