SSH Benutzer auf git shell limitieren

Ich benutze kein Gitlab oder Github für private Repositories sondern greife auf diese normal per ssh zu. Wenn man das alleine auf einem Server macht ist das kein Problem. Was aber wenn jemand da zustößt und will auch an das Repository? Dieser sich aber auch sonst nicht auf dem Server einloggen und am System zu schaffen machen.

Zum Glück kann man pro SSH Pubkey erlauben welche Programme ausgeführt werden dürfen. Ein Feature was meines Erachtens viel zu wenig angewendet wird. Dafür brauchen wir erst einmal ein kleines Script, welches der Key ausführen darf und somit unserer Limitierung ist. Das platzieren wir in dem Home Verzeichnis des Benutzers:

# cat ~/gitserve && chmod g+x ~/gitserve


#!/bin/sh
exec git-shell -c "$SSH_ORIGINAL_COMMAND"

Dem SSH Key müssen wir dieses jetzt nur noch bei bringen:

command="./gitserve",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty
ssh-rsa AAAAB.....

Der Benutzer kann jetzt nur noch mit der git-shell interagieren.

Leave a Reply

Your email address will not be published.

Time limit is exhausted. Please reload CAPTCHA.

This site uses Akismet to reduce spam. Learn how your comment data is processed.