【问题标题】:Git clone from one server to another without superuser accessGit 从一台服务器克隆到另一台服务器,无需超级用户访问
【发布时间】:2016-08-09 18:34:22
【问题描述】:

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

现在我想 git clone 将 prod 发送到 dev 中,然后能够将经过验证的功能推送到 prod。我试着用

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

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

  • PermitRootLogin no 更改为PermitRootLogin without-password 并使用ssh 密钥以root 身份连接。我想它会起作用的。
  • 创建另一个超级用户以保持 root 停用,并对新用户执行完全相同的操作(可能更安全一些)。

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

先谢谢了!

【问题讨论】:

    标签: git ssh git-clone


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 解释得很好,谢谢。这澄清了我脑海中模糊的事情。事实上,一个用户已经拥有完全这样设置的权限,只是不是我们的普通 ssh 用户,而是我们用于 ftp 的用户......现在一切都很好。谢谢!
    • 干杯,很高兴它有帮助。
    猜你喜欢
    • 2015-02-20
    • 2014-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-17
    • 1970-01-01
    相关资源
    最近更新 更多