git-shell(1)
============

NAME
----
git-shell - Restricted login shell for Git-only SSH access


SYNOPSIS
--------
[verse]
'chsh' -s $(command -v git-shell) <user>
'git clone' <user>`@localhost:/path/to/repo.git`
'ssh' <user>`@localhost`

DESCRIPTION
-----------

This is a login shell for SSH accounts to provide restricted Git access.
It permits execution only of server-side Git commands implementing the
pull/push functionality, plus custom commands present in a subdirectory
named `git-shell-commands` in the user's home directory.

COMMANDS
--------

'git shell' accepts the following commands after the `-c` option:

'git receive-pack <argument>'::
'git upload-pack <argument>'::
'git upload-archive <argument>'::
	Call the corresponding server-side command to support
	the client's 'git push', 'git fetch', or 'git archive --remote'
	request.
'cvs server'::
	Imitate a CVS server.  See linkgit:git-cvsserver[1].

If a `~/git-shell-commands` directory is present, 'git shell' will
also handle other, custom commands by running
"`git-shell-commands/<command> <arguments>`" from the user's home
directory.

INTERACTIVE USE
---------------

By default, the commands above can be executed only with the `-c`
option; the shell is not interactive.

If a `~/git-shell-commands` directory is present, 'git shell'
can also be run interactively (with no arguments).  If a `help`
command is present in the `git-shell-commands` directory, it is
run to provide the user with an overview of allowed actions.  Then a
"git> " prompt is presented at which one can enter any of the
commands from the `git-shell-commands` directory, or `exit` to close
the connection.

Generally this mode is used as an administrative interface to allow
users to list repositories they have access to, create, delete, or
rename repositories, or change repository descriptions and
permissions.

If a `no-interactive-login` command exists, then it is run and the
interactive shell is aborted.

EXAMPLES
--------

To disable interactive logins, displaying a greeting instead:

----------------
$ chsh -s /usr/bin/git-shell
$ mkdir $HOME/git-shell-commands
$ cat >$HOME/git-shell-commands/no-interactive-login <<\EOF
#!/bin/sh
printf '%s\n' "Hi $USER! You've successfully authenticated, but I do not"
printf '%s\n' "provide interactive shell access."
exit 128
EOF
$ chmod +x $HOME/git-shell-commands/no-interactive-login
----------------

To enable git-cvsserver access (which should generally have the
`no-interactive-login` example above as a prerequisite, as creating
the git-shell-commands directory allows interactive logins):

----------------
$ cat >$HOME/git-shell-commands/cvs <<\EOF
if ! test $# = 1 && test "$1" = "server"
then
	echo >&2 "git-cvsserver only handles \"server\""
	exit 1
fi
exec git cvsserver server
EOF
$ chmod +x $HOME/git-shell-commands/cvs
----------------

SEE ALSO
--------
ssh(1),
linkgit:git-daemon[1],
contrib/git-shell-commands/README

GIT
---
Part of the linkgit:git[1] suite
