我有一个git服务器,人们在这里通过ssh设置远程存储库,还有一个他们都连接的git用户,它拥有安全权限等等。
我正在编辑repo中的预接收挂钩,以便它查看环境变量$GIT_USER
是否与该repo的允许用户列表匹配,以防止未经授权的用户推送。
该环境变量在git用户的.ssh/authorized_keys
文件中单独设置。
但是,除了git之外,我不希望为任何用户设置ssh的环境变量。
有没有办法编辑/etc/ssh/sshd_config
,使PermitUserEnvironment
只为git用户启用?
解决方法是:
- 保持
PermitUserEnvironment
为"否"> - 用包装脚本替换
/usr/local/bin/git
,该包装脚本将:- 设置相关的环境变量
- 调用实际的CCD_ 7二进制
您可以设置"PermitUserEnvironment否";在sshd_config的底部,您可以覆盖每个用户的设置:
Match User git
PermitUserEnvironment yes
这应该能实现你想要的。