Israeli media said on Thursday that the man was a settler from the West Bank who had left his unit after refusing to take part in Israel's planned withdrawal from the occupied Gaza Strip, which starts in two weeks.
Police said the motive for the shooting in the town of Shfaram was unclear. Some reports said the shooting took place after a dispute on the bus. An Israeli Arab member of parliament said he believed it was a political attack.
After the shooting, the man was attacked by other passengers on the bus, police said.
Israeli television showed pictures of bodies covered by sheets lying on the road outside the bus, whose windows were broken.
The identities of the dead were not immediately made public. Police had said initially that the attacker was a soldier but later that they were not sure.
Tensions have been running high over Israel's plan to leave the occupied Gaza Strip and a corner of the West Bank.
Israeli army officers have said they fear right-wing Israelis could attack Palestinians as a way to stir conflict that would tie down Israeli forces, in an attempt to prevent the evacuation.
Israeli Arab parliament member Muhammad Baraka, quoted by the Haaretz Web site, said: "We are witnessing attempts by extreme right-wing people, terrorists, who want to set the region ablaze and feel they have freedom of action."
Israeli opponents of the Gaza pullout cite a biblical claim to the land and say the withdrawal amounts to surrender to the Palestinians.