Bennasser joined the Red and Whites from Nancy in 2016 and has had loan stints with the Ligue 2 club and Caen in the past two seasons.
The 22-year-old had his best playing run with Monaco this season, making 17 starts in 18 appearances across all competitions.
✍️🇲🇦8⃣ pic.twitter.com/5T5q8JhHMA— AS Saint-Étienne (@ASSEofficiel) January 31, 2019
He will be hoping to make his debut when the Greens host Toulouse for Sunday’s Ligue 1 game.
“Very proud to join Saint-Etienne. Ready to discover Geoffroy-Guichard, good luck Monaco for the maintenance,” Bennasser tweeted.