Nato’s chief warned that the war in Ukraine could last “for years” as President Volodymyr Zelensky vowed on Sunday that his forces would not give up the south of the country to Russia after his first visit to the frontline there. Ukraine said it had also repulsed fresh attacks by Russian forces on the eastern front, where there have been weeks of fierce battles as Moscow tries to seize the industrial Donbas region. While Ukraine remained defiant, Nato Secretary-General Jens Stoltenberg warned Western countries must be ready to offer long-term support to Kyiv during a grinding war. He said the supply of state-of-the-art weaponry to Ukrainian troops would boost the chance of freeing its eastern region of Donbas from Russian control, Germany’s Bild am Sonntag newspaper said. “We must prepare for the fact that it could take years. We must not let up in supporting Ukraine,” he was quoted as saying. “Even if the costs are high, not only for military support, also because of rising energy and food prices.” Meanwhile, four months of fighting in Ukraine appear to be straining the morale of troops on both sides, prompting desertions and rebellion against officers’ orders, Britain’s defence ministry said on Sunday. “Ukrainian forces have likely suffered desertions in recent weeks,” said its daily assessment of the war, but added that “Russian morale highly likely remains especially troubled”. Like Stoltenberg, British Prime Minister Boris Johnson, who visited Kyiv on Friday , mentioned the need to prepare for a long war. This meant ensuring “Ukraine receives weapons, equipment, ammunition and training more rapidly than the invader,” he wrote in London’s Sunday Times . Boris Johnson makes surprise Kyiv visit, warns against ‘Ukraine fatigue’ Ukraine received a significant boost on Friday when the European Commission recommended it be granted EU candidate status , something EU countries are expected to endorse this week. This would put Ukraine on course to realise an aspiration seen as out of reach before Russia’s February 24 invasion, even if actual membership takes years. ‘We will take it all back’ President Zelensky, whose defiance has inspired Ukrainians and won him global respect, made a rare trip outside Kyiv to the holdout Black Sea city of Mykolayiv, about 550km (340 miles) south of Kyiv. He visited troops nearby and in the neighbouring Odesa region for the first time since the Russian invasion. “We will not give away the south to anyone, we will return everything that’s ours and the sea will be Ukrainian and safe,” he said in a video posted on Telegram on Saturday as he made his way back to Kyiv. He said he talked to soldiers and police during his visit. “Their mood is confident, and looking into their eyes it is obvious that they all do not doubt our victory,” he said. “We will not give the south to anyone, and all that is ours we will take back.” But Zelensky admitted losses were “significant”, saying “many houses were destroyed, civilian logistics were disrupted, there are many social issues”. Mykolayiv is a key target for Russia as it lies on the way to the strategic Black Sea port of Odesa. Some soldiers were trying to keep their pre-war routines alive, though, with one saying he would not give up his vegan diet on the front lines. Oleksandr Zhuhan said he had received a special package from volunteers. “There was pate and vegan sausages, hummus, soya milk... and all this for free,” the 37-year-old drama teacher said. Battlefield Luhansk Meanwhile, on Ukraine’s battlefields, Russian attacks have intensified. Sievierodonetsk, a prime target in Moscow’s offensive to seize full control of the eastern region of Luhansk, was again under heavy artillery and rocket fire as Russian forces attacked areas outside the industrial city, the Ukrainian military said. Serhiy Gaidai, the Ukrainian-appointed governor of Luhansk, told Ukrainian television: “All Russian claims they control the town are a lie. They control the main part of the town, but not the whole town.” In Sievierodonetsk’s twin city of Lysychansk across the river, Gaidai said on the Telegram messaging app that residential buildings and private houses had been destroyed, adding, “People are dying on the streets and in bomb shelters.” Ukraine’s military acknowledged “the enemy has partial success in the village of Metolkine,” just southeast of Sievierodonetsk. Russia’s state news agency TASS said many Ukrainian fighters had surrendered in Metolkine, citing a source working for Russian-backed separatists. Ukraine: Lessons to be learned from Bosnia’s Srebrenica, says Dutch PM To the northwest, Russian missiles hit a gasworks in Izium district and rockets rained down on a suburb of Kharkiv, Ukraine’s second-largest city, hitting a municipal building and starting a fire in a block of flats, but causing no casualties, Ukrainian authorities said. They also reported the shelling of locations further west in Poltava and Dnipropetrovsk. The Ukrainian armed forces’ general staff said Russian troops on a reconnaissance mission near the town of Krasnopillya had been beaten back with heavy casualties on Saturday. Ukraine plans to resume peace talks with Russia by August: officials A fuel storage depot in the eastern town of Novomoskovsk exploded on Sunday, killing one person and injuring two, after it had been hit by three Russian missiles, the regional administration chief said in an online message. Reuters could not independently confirm the battlefield accounts.