We'd naturally say "Have you ever been to Moscow?" The "to" indicates the transit of going there and coming back. Look up the difference between "have gone to ___" and "have been to ___".
It's possible to use "in", but when I hear learners say this it always seems a bit off, like asking "How long are you in Moscow?" compared to "How long have you been in Moscow?" These are different questions. I guess it's because "in" usually means a static position.
If the question is to do with travel, use "to".