"I was at a class when I heard shooting on the first floor," said one student in the Kerch Polytechnical College on the Crimean peninsula, who asked not to by identified.
"When we all ran out into the corridor, there were others running and shouting that some guy with a machine gun was randomly shooting everyone in turn," the student told AFP.
Crimea's regional leader Sergei Aksyonov said the perpetrator of the attack was a 22-year-old student in the school who lives in Kerch and shot himself afterwards.
Investigators, however, identified the attacker as 18-year-old Vladislav Roslyakov, a fourth-year student whose body was found "with a gunshot wound" on the premises.
The nature of the attack remained unclear after Russia's National Anti-Terrorism Committee said that there was an explosion and investigators initially said an "unidentified explosive device" had gone off.
Witnesses said that they heard an explosion as well as shots.
"Then a strong explosion went off, but thank God, I was already outside and saw our guys being thrown out of the windows by the explosive wave," said the student.
"There's a lot of them, the ambulances did not have enough stretchers," he said, adding that more bodies could be buried under the rubble from a part of the building that collapsed.
Another student, Semyon Gavrilov, told the Komsomolskaya Pravda newspaper that he saw "a young man with a gun walking around shooting everybody" and hid in a classroom.
"After 10 minutes police with automatic rifles arrived," he said. "I don't know what happened to the shooter."
The college's head Olga Grebennikova told local website Kerch. TV that she was called away on business and came back to the school to witness complete chaos, including reports of multiple shooters.
"They blew up the corridor, they ran around, throwing explosives, ran around with automatic rifles, opening classes and killing anybody they could find," she said sobbing.
At least 17 people were killed in the college, with dozens more injured.