I believe you are correct, that you need a visa
if you are not part of a paid shore excursion from the ship.
This is from a Visit Russia website:
Cruise Passengers
Cruise ship passengers can currently visit Russia on visa-waiver scheme provided the stop in the port of call doesn't exceed 72 hours and tourists stay overnight on board the cruise ship.
Cruise passengers may disembark from the ship without a tourist visa if they participate on tours organized by travel companies. Passengers not participating on tours and wishing to disembark will need to obtain a Russia tourist visa.
Cruise passengers cannot obtain a visa in Russia. Visas are issued in the country of residence before departure.