跳转至

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

参考

使用git-shell来限制用户ssh登陆

回到页面顶部