President Vladimir Putin said Russia can offer shelter to fugitive whistleblower Edward Snowden - but he has to stop leaking US secrets.
Snowden, a former National Security Agency (NSA) contractor, is believed to be holed up in a Moscow airport hotel.
"Russia has never extradited anyone and is not going to do so. Same as no one has ever been extradited to Russia," Putin said.
"There is one condition if he wants to remain here: he must stop his work aimed at damaging our American partners, as odd as it may sound from me."
Putin maintained that Snowden had not been contacted by the Kremlin's security agencies and was not a Russian agent.
Putin's words came as German publication Der Spiegel revealed - thanks to files leaked by Snowden - that the NSA, operating from the Nato HQ on Brussels, had snooped on EU institutions and other US allies, including Germany, Italy and France.
Snowden has been stuck in a legal limbo at Moscow's Sheremetyevo airport for eight days.
He arrived in the Russian capital after flying from the US via Hong Kong as his revelations in the Guardian and the Washington Post triggered one of the biggest manhunts in the US recent history.
Washington annulled his passport and wants to prosecute him over the leaking of intelligence documents that revealed how the NSA systematically collected huge amounts of web data under a programme known as Prism.
The Los Angeles Times reported that Snowden had filed asylum application with 15 countries.