Defence Minister Christine Lambrecht said Berlin, which has faced growing criticism of its refusal to supply arms to Ukraine as other Western countries have done, was responding to a request from the government in Kyiv.
"I received a letter from the Ukrainian embassy, requesting support with military equipment, helmets to be precise," she told reporters. "We will supply Ukraine with 5,000 helmets as a clear signal: We are at your side."
Russia has massed tens of thousands of troops near its border with Ukraine but denies planning to attack its neighbour.
Ukraine's ambassador to Berlin Andriy Melnyk said the "symbolic gesture" was welcome but inadequate as his country needs equipment for hundreds of thousands of soldiers, of which helmets are not the most urgently needed part.
"We are glad that we can see at least the beginning of a change in thinking," he told Reuters. "However, what we need the most are defensive weapons."
While the United States and Britain have started sending more arms to Ukraine, German Chancellor Olaf Scholz has ruled out sending "lethal weapons" for historical reasons.
"This is exactly how we will continue to work in this conflict. We are working towards reaching a peaceful solution to this conflict in the middle of Europe," Lambrecht said.
At the weekend, the defence minister had said Germany would also supply a field hospital to Ukraine.
But Klitschko, a former world heavyweight boxing champion who lived for years in Germany and is now mayor of the Ukrainian capital, was unimpressed with Wednesday's offer.
"The behaviour of the German government leaves me speechless. The defence ministry apparently hasn't realized that we are confronted with perfectly equipped Russian forces that can start another invasion of Ukraine at any time," he told Germany's largest tabloid Bild.
"What kind of support will Germany send next?" he joked. "Pillows?"
(Reporting by Paul Carrel, Sabine Siebold and Andreas Rinke, Writing by Zuzanna Szymanska, Editing by Thomas Escritt and Catherine Evans)