【问题标题】:gitlab-shell: Disallowed commandgitlab-shell:不允许的命令
【发布时间】:2015-08-16 03:23:11
【问题描述】:

我在 Ubuntu 14.04 上安装了最新版本的 GitLab,除了推送到远程之外,它运行良好。

运行ssh git@example.com "git-receive-pack repo.git" 效果很好。在 ~/gitlab-shell/gitlab-shell.log 中,结果是

INFO -- : gitlab-shell: 为具有密钥 key-1 的用户执行 git 命令 git-receive-pack repo.git。

但是当我运行git push 时,日志显示:

警告 -- : gitlab-shell: 尝试使用密钥 key-1 执行不允许的命令 git receive-pack 'repo.git'。

输出是:

致命:协议错误:错误的行长度字符:Disa

ssh git@example.com "git receive-pack repo.git" 的输出是

“不允许的命令”

因此,允许和不允许之间的区别是缺少破折号。

我的 git 版本:

  • 本地 git 版本:2.2.1 (OS X)
  • 远程 git 版本:1.9.1 (Ubuntu 14.04)

我该如何解决这个问题?有配置参数吗?

【问题讨论】:

    标签: git shell ssh gitlab


    【解决方案1】:

    我也遇到了同样的问题,编辑 ~/.gitconfig 解决了这个问题。

    在过去的某个时间,某事修改了我的本地 ~/.gitconfig 文件并插入了以下条目:

    [remote "origin"]
            receivepack = git receive-pack
    

    我将其修改为以下,现在一切正常。

    [remote "origin"]
            receivepack = git-receive-pack
    

    【讨论】:

      【解决方案2】:

      当我返回以下内容时,我自己在这个问题上花了很多时间:

      fatal: protocol error: bad line length character: This
      

      我了解到,这可能是由于服务器上的 Shell 访问(是否允许访问?)问题造成的。

      查看Git push results in fatal: protocol error: bad line length character: This 可能会很有用,这在当时对我有帮助。

      我希望它在某种程度上有所帮助.. :)

      【讨论】:

      • 我猜这可能只是 gitlab shell 的问题,否则ssh git@example.com "git-receive-pack repo.git" 将无法工作。并且 gitlab 检查都是绿色的……
      猜你喜欢
      • 1970-01-01
      • 2021-08-11
      • 2013-08-18
      • 2017-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多