I've got a situation where 40 users are going to come in and use fresh machines to work on git repos and push them to github. I'm trying to think of the simplest way to handle ssh keys. I see the ideal situation is that every user has their own ssh key, and a different one for every machine. The problem is that we're going to have a single user account on each of the machines, and we'd rather not have to deal with setting up a separate ssh key on every machine. Not to mention users will be switching between different machines.
Right now I'm thinking the best option will be to simply set up one ssh key across all of the machines and have every user add it to their github account. Given the security implications, I'd rather come up with something better, and I'm not entirely sure how github will handle it either, but the most important thing for us is to minimize user headache. What options are available to ease the situation?
Update: So being that we wanted to avoid setting up a server to manage all the machines, we set up a single ssh key across all the machines, which is associated with its own github account. Students either push to that account or add it as a contributor on their projects, and then use edgecase-git-pair to manage commits.