轻作



重拾写作的乐趣

Git/SVN禁止SSH登录shell并输出提示

2020.03.07
  1. 新建git-shell-commands/svn-shell-commands目录
# git
mkdir -p git-shell-commands

# svn
mkdir -p svn-shell-commands
  1. 创建no-interactive-login文件
# git
cat > git-shell-commands/no-interactive-login << EOF
#!/bin/sh
printf '%s\n' "Hi $USER! You've successfully authenticated, but I does not provide interactive shell access."
exit 128
EOF
chmod +x git-shell-commands/no-interactive-login

# svn
cat > svn-shell-commands/no-interactive-login << EOF
#!/bin/sh
printf '%s\n' "Hi $USER! You've successfully authenticated, but I does not provide interactive shell access."
exit 128
EOF
chmod +x svn-shell-commands/no-interactive-login
  1. 配置sshd_config
# git
Match User git
    X11Forwarding no
    AllowTcpForwarding no
    PermitTTY no
    AuthenticationMethods publickey
    ForceCommand /bin/bash -c "if [[ -n \"$SSH_ORIGINAL_COMMAND\" ]];then /bin/git-shell -c \"$SSH_ORIGINAL_COMMAND\"; else /bin/git-shell; fi"

# svn
Match User svn
    X11Forwarding no
    AllowTcpForwarding no
    PermitTTY no
    AuthenticationMethods publickey
    ForceCommand /bin/bash -c "if [[ -n \"$SSH_ORIGINAL_COMMAND\" ]];then /bin/svn-shell -c \"$SSH_ORIGINAL_COMMAND\"; else /bin/svn-shell; fi"
  1. SSH登录时显示

Hi git! You’ve successfully authenticated, but I does not provide shell access.

Hi svn! You’ve successfully authenticated, but I does not provide shell access.

发表评论