Как определить пользователя, подключившегося по ssh?
Нужно ограничить пуш в определенные ветки. Для этого в хуке гита нужно определить какой пользователь подключился. Все подключаются через одного пользователя с помощью ssh ключей. Для определения пользователя нужно получить его открытый ключ, получить по нему пользователя и сохранить в переменную окружения. Сам механизм понятен, не пойму, как в sshrc получить открытый ключ для текущего подключения, ман читал, но не нашел. upd
Нашел такой вариант, но не смог реализовать. Почитал man sshd, в authorized_keys есть возможность добавлять параметры среды через environment="NAME=value", это в принципе мне подходит, но проблема в том, что не смог это запустить, если пишу после открытого ключа, то переменная не устанавливается, если перед, то авторизация по ключу не происходит.
вот такие варианты я использовал:
environment="GIT_USER=deployer" ssh-rsa AAAA....... user@computer
ssh-rsa AAAA....... user@computer environment="GIT_USER=deployer"
Это будет крайний случай, если не смогу найти решение с одним пользователем. с одним пользователем проще, все разрешенные ключи находятся в одном файле.
Alzasr: сам он нет. к нему есть надстройки.
gitolite - под вашу задачу лучше ложится, имхо.
gitosis
и т.д.
имхо, вы зря на голом на голом git пытаетесь сложную политику определить.