假设
Linux服务器上有一个远程
Git存储库R. R由用户U拥有,对于该用户U,根本不允许通过SSH进行远程登录(例如,根).基于密码和基于密钥的身份验证均不适用于该用户.但是,允许的是以不同的用户身份登录,然后使用su或sudo以U发出命令.
是否可以将这两种方法结合起来,以便Git在远程服务器上使用su或sudo来访问存储库?
或者,是否有另一种方法来访问R而不更改其访问权限或启用U的SSH登录?
P.S.:我不介意手动输入密码,例如在su提示下,只要Git处理剩下的事情.
编辑:
从评论中可以看出,我需要澄清我想要做这样的事情的理由. R跟踪的文件是有问题的服务器正在使用的系统文件 – R不是裸存储库.这意味着无法真正移动存储库,而不是没有大量的诡计.
让Git使用sudo将允许使用保护这些文件的相同安全模型来访问R,而不是通过必须单独配置和同步的单独途径.
解决方法
更容易建立另一个监听器而不是sshd dameon:设置一个Apache,其中:
>可以以root身份运行
>可以将git查询重定向到git-http-backend
脚本,这允许通过http的git命令(称为smart http,documented here)
这样,你不必担心sudo和su.
如果需要,您可以将其与身份验证步骤结合使用.
<Location /git> AuthType Basic AuthName "Private Git Access" AuthUserFile "/etc/git-auth-file" Require valid-user </Location>