Estou assumindo que todos estão compartilhando o mesmo usuário no servidor git, e cada um deles tem sua própria chave para efetuar login.
Se for esse o caso, em vez de identificar o usuário remoto , você poderá identificar facilmente a chave pública que o usuário usou para efetuar login no servidor git. Para fazer isso, você deve permitir PermitUserEnvironment
no sshd_config
do seu servidor, e então você pode facilmente identificar cada chave pública prefixando-a com algo como environment="GIT_USER=username"
. Por exemplo, o arquivo authorized_keys
para o usuário do serviço git poderia ter esta aparência:
environment="GIT_USER=bob" ssh-rsa AAA.....abc== bob@somehost
environment="GIT_USER=sam" ssh-rsa AAA.....def== sam@otherhost
Você é livre para escolher o nome da variável de ambiente e o identificador de usuário.
Se você estiver usando gitolite , então $GL_USER
é o que você está procurando.
Se você estiver usando gitosis , você deve considerar mudar para gitolite .