Git 在没有超级用户访问权限的情况下从一台服务器克隆到另一台服务器

Git clone from one server to another without superuser access

我想为我的同事和我在开发服务器和生产服务器之间(以及稍后在本地机器和开发服务器之间)设置一个 git 环境。在 prod、init 上安装了 git,一切正常。

现在我想 git clone 将产品添加到开发中,然后能够将经过验证的功能推送到产品中。我试着用

这样做
git clone ssh://sshUser@111.11.11.111:1234/path/to/git/repos/

问题是,该用户不是超级用户,无法访问该路径。所以当然失败了。我无法连接到 root,因为 PermitRootLogin no。所以我想到了两种可能性:

但我不确定这是否是正确的方法,或者我是否有其他我没有想到/未找到相关信息的选择。

提前致谢!

在您的生产系统上拥有需要 root 访问权限的应用程序文件首先不是一个好主意,并且以您描述的方式进一步打开您的 root 帐户是绝对不行的-不。一个好的(即安全的)方法是这样的:

  • 创建一个组 myapp 和一个用户 myappadm
  • 与您的应用程序相关的所有内容(即 /path/to/git/repos/)都应 chownmyappadm:myapp
  • 所有内容都应由 myappadm 写入,但只能由 myapp 读取。
  • 您的网络服务器之类的东西可以进入组 myapp

(当然,如果您已经有一个像 myapp 这样的组并且只有 root 而不是 myappadm 那么您可以保留该组并将所有内容都添加到 myappadm 而不是 root.)

完成后,您将从 ssh://myappadm@... 克隆,一切都会好起来的。有权访问myappadm的人将无法再接管整个机器,依此类推。