git-shell 禁止git用户登陆系统
2015-11-20 by dongnan
目标
允许 testgit
账户通过 ssh
进行 push/pull
等git操作,但是禁止其 ssh
登陆操作系统。
环境
可以使用 git-shell
完成这个目标。
软件版本
rpm -qf /usr/bin/git-shell
git-1.7.1-3.el6_4.1.x86_64
步骤
增加 git-shell
# 执行命令
tail /etc/shells
# 返回结果
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
# 执行命令
echo "/usr/bin/git-shell" >> /etc/shells
更改账户shell
chsh -s /usr/bin/git-shell testgit
Changing shell for testgit.
Shell changed.
验证
用户shell
tail -n1 /etc/passwd
testgit:x:503:503::/home/testgit:/usr/bin/git-shell
拒绝登陆
ssh -v testgit@yourserver
# ...省略
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
命令帮助
NAME
git-shell - Restricted login shell for Git-only SSH access
SYNOPSIS
chsh -s $(command -v git-shell) <user>
git clone <user>@localhost:/path/to/repo.git
ssh <user>@localhost