Задать вопрос

Как запретить пользователю git логиниться по ssh?

Есть OpenSSH, адрес репозитория выглядит так git@myserver:/home/git/project.git. Авторизация по ключам. Как сделать так, чтобы коммитить могли, а заходить на сервер по ssh нет.
  • Вопрос задан
  • 2839 просмотров
Подписаться 5 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • ProductStar
    Python + Flask + Git: веб-разработка с нуля
    2 месяца
    Далее
  • Учебный центр IBS
    DEV-007 Введение в систему контроля версий Git
    1 неделя
    Далее
  • Stepik
    Git (система контроля версий)
    1 неделя
    Далее
Решения вопроса 1
EvilShadow
@EvilShadow
Используйте gitolite, он сделан именно для таких случаев.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Oreolek
@Oreolek
Поставить шеллом пользователям git-shell. Позволяет работать с git, но накрепко запрещает все остальные операции.
Ответ написан
Комментировать
laQie
@laQie
usermod -s `which nologin` LOGIN
Ответ написан
Комментировать
kotomyava
@kotomyava
Системный администратор
Можно для этих пользователей создать группу, для этой группы описать в конфиге sshd описать блок:
Match Group gitusers
ForceCommand git_restricted
X11Forwarding no
AllowTcpForwarding no
AllowAgentForwarding no
PermitTunnel no

Где git_restricted, это скриптик на вашем любимом языке, который проанализирует команду, которую пытался запустить пользователь, и которая будет в переменной окружения SSH_ORIGINAL_COMMAND, и если это одна из нужных команд (git-receive-pack, git-upload-pack, git-upload-archive) будет её выполнять с нужными аргументами.

Если поискать, есть готовые решения. Хотя и написать-то не проблема.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
Made In Dream Санкт-Петербург
от 100 000 до 220 000 ₽
от 250 000 до 320 000 ₽