German riot police broke up far-right protesters in Cologne as they marched against Germany's open-door migration policy after dozens of asylum seekers were arrested for mass assaults on women on New Year's Eve.

The attacks, ranging from sexual assault to theft, shocked Germany, which took in 1.1 million migrants and refugees in 2015 under asylum laws championed by Chancellor Angela Merkel.

Shortly before today's protest began, Ms Merkel hardened her stance towards migrants, promising expulsion for criminals and a reduction in migrant numbers over the longer term to Germany.

Police said around 1,700 people attended the rally organised by the far-right anti-Islam PEGIDA movement, which has seized on the alleged involvement of migrants in the Cologne attacks as proof that Ms Merkel's policy is flawed.

A police spokesman said roughly half of those at the PEGIDA protest were from the "hooligan scene". Some in the crowd threw bottles and fire crackers at officers, and riot police used water canon to disperse the protesters.

Two people were injured in the clash, and police detained a number of demonstrators, a witness said.

PEGIDA, or Patriotic Europeans Against the Islamisation of the West, almost fizzled out last year when its leader resigned after a photo was published of him posing as Adolf Hitler.

But its ranks have swelled as resentment has spread of Ms Merkel's welcoming stance to refugees.

"The events on New Year's Eve led to a lot of emotion," said a police spokesman. "We had feared that emotions would boil over."

About 1,300 people attended a rival left-wing protest in Cologne, according to police.

"No means no. Keep away from our bodies," read one sign held by one of the demonstrators.

Ms Merkel's remarks today were in stark contrast to her earlier optimism about the influx to Germany, which has taken in far more migrants than any other European country.

Her 'we can do it' slogan irritated many Germans, uneasy about the mass arrival.

"The right to asylum can be lost if someone is convicted, on probation or jailed," Ms Merkel said after a meeting of the leadership of her Christian Democrats (CDU) party that was overshadowed by the attacks in Cologne and other cities.

"Serial offenders who repeatedly rob or repeatedly affront women must feel the full force of the law," Ms Merkel said.

Under German law, asylum seekers are now typically only deported if they have been sentenced to at least three years in prison, and providing their lives are not at risk at home.

Ms Merkel's conservative party said it wanted to reduce and control migration to Germany, and send those who had been refused asylum home promptly. Such a move would require a change to German law.

Earlier in the week, German federal police said they had identified 32 people who were suspected of playing a role in the attacks on women on Cologne, 22 of whom were in the process of seeking asylum in Germany.

They documented 76 criminal acts, most them involving some form of theft, and seven linked to sexual assault.