РЕДАКТИРОВАТЬ: Не уверен во всех внезапных отрицательных рейтингах;Я, очевидно, не говорю, чтобы использовать Gitolite, поскольку OP специально попросил не использовать его.Я просто заявляю, что он запрашивает 95% того, что делает крошечный исходный код Gitolite, и, следовательно, я говорю ему, где в его источнике он может найти фрагмент, который он хотел бы скопировать, чтобы свернуть свой собственный.
Да, гитолит делает именно это.Он также не меняет оболочку пользователя.
cat ~/.ssh/authorized_keys
command="/home/git/.gitolite/src/gl-auth-command jbruce",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAAAD3NzaC1yc2EABBBCIwAAAQEAtRFmADxUSCX97CS/Uh7/N0y0vL...
Обратите внимание, что на сервере это не выглядит как обычный authorized_keys
, он также передает имя пользователя в качестве параметра, чтобы исполняемый скрипт зналкому принадлежит этот ключ sshДополнительным преимуществом не переключения пользовательской оболочки (при сохранении ее безопасности) является то, что если вы попытаетесь подключиться непосредственно к компьютеру по ssh, он не только завершит сеанс, но и сообщит вам, к каким репозиториям у вас есть доступ, прежде чем он завершит работу, если он знаеткто ты.