См. ответ на вопрос № 241191.
Это название в сочетании с родовым наименованием город не склоняется. Подробнее см. в «Письмовнике».
Корректно: в городе Красноярске.
Правильно: в Москве и (в канцелярской речи) в городе Москве.
См. в Горячей десятке вопросов.
Верно: в городе Санкт-Петербурге.
Строгая литературная норма требует склонять русские и хорошо освоенные иноязычные названия городов в сочетании со словом город: в городе Байконуре. Отсутствие согласования (в городе Байконур) можно встретить в официально-деловом стиле, в административно-судебной речи.