A) I don't want this to be a publicly accessible project. This will be closed source, so we want to make sure that our team is the only users to be able to access the code/git repository.

B) We have 4 developers, can I just setup 4 Ubuntu users and passwords with SSH access

C) If answer to B is yes, do I have to create a group, add the users to the group, and give the group access to the /srv/repos/git/davidsproject folder??

D) if anser to C is yes, will that affect how trac is able to access the repository?

E) What about SSH keys. Is there a better approach with using SSH keys instead of plain users and passwords for SSH access?

F) If I use SSH keys, what is the step by step process for doing so?

G) Is it possible to setup both SSH keys and Ubuntu users, so that there is accountability (each ubuntu user has an explicit SSH key)? I have seen some documentation/instructions that recommend setting up a "git" user and allowing that user to publish the master git repository code, and then let all other team members clone that initial codebase. The "git" user is setup for access to the git repository, and each individual user is setup with an explicit SSH key which allows one Ubuntu user, and multiple SSH keys from real users for access. Is this ideal, and what are the step by step processes.

Additionally, I have seen some mention of using gitosis to manage granular access to git repositories.

I would prefer not to install yet another tool for managing this. I would rather use what is in the appliance to begin with.

and the reason, I'm asking this on the TKL discussion forums, is that I want the Trac portion of the workflow to continue to work. I'm afraid that if I install gitosis, that there may be some complication with accessiblity since we already have Trac and gitplugin for git working.