【问题标题】:GIT Clone with www-data from remote server来自远程服务器的带有 www-data 的 GIT 克隆
【发布时间】:2013-09-16 21:33:59
【问题描述】:

我的问题是我需要从使用 gitolite 创建远程存储库的服务器执行克隆和提交。

当我使用 www-data 用户执行手动克隆时:

git clone ssh://git@git-repo.fr/client_1_foo /tmp/client_1_foo

项目是克隆的。

但是当我的脚本 (PHP) 调用相同的命令时,我收到错误 128(SSH 错误)。

编辑:(执行脚本的用户是 www-data) 任何想法 ?

gitolite 会议:

repo client_1_foo
    RW+ = @client_1_foo_ADMIN @all www-data
    RW = @client_1_foo_DEV Jenkins
    R = daemon

【问题讨论】:

  • 那么,作为www-data,我想ssh -Tv git@git-repo.fr 有效吗?当用户执行你的脚本时,ssh -Tvvv git@git-repo.fr 是什么? IE。哪个用户正在运行您的 PHP?
  • 您的 PHP 脚本是否可能错误地设置了 url?如stackoverflow.com/questions/6564309/… ?
  • 是的,就是这样! ':' 而不是 '/' 在 repo name 之前!谢谢!
  • 优秀。我添加了一个答案来说明这一点。

标签: php git gitolite


【解决方案1】:

如“git ls-remote returns 128 on any repo”,脚本可能没有正确构建 ssh url。

git://host:repo (correct)
# instead of 
git@host/repo (incorrect)

ssh url 的SCP syntax 通常包含一个~/.ssh/config 文件,该文件会将“:”前面的字符串解析为服务器、用户、端口和 ssh 密钥(如“Why can't git resolve the hostname when I push to a valid SSH address?”)。

【讨论】:

    猜你喜欢
    • 2019-06-07
    • 1970-01-01
    • 2015-02-05
    • 2018-08-02
    • 2021-02-20
    • 1970-01-01
    • 1970-01-01
    • 2013-06-24
    • 1970-01-01
    相关资源
    最近更新 更多