windows git - 致命:协议错误:行长字符错误:USER

时间:2017-09-26 14:03:28

标签: git ssh

首先关闭:我很清楚stackoverflow /互联网上充满了关于这个问题的类似问题 - 但是没有人能够得到这个具体问题的答案,即使我在这种情况下尝试了我能想到的一切。 / p>

所以,问题在于,当我的Windows客户端使用git-bash或git.exe时,我无法克隆,拉动,推送任何东西到我的Ubuntu服务器上的远程托管存储库。 确切的错误消息是:

  

致命:协议错误:行长字符错误:pr_d

pr_developer实际上是用于ssh登录的用户名。

所以问题是服务器在开始时用用户名响应,而不是消息大小应该是什么(我读过这就是git所期望的)。但是用ssh git-receive-pack测试是成功的! image showing the problem

$ git clone pr_developer@xx.xx.xx.xx:/var/www/vhosts/xxxxxxxxxx/git/delphi/ c:/workspace/test1234
Cloning into 'c:/workspace/test1234'...
fatal: protocol error: bad line length character: pr_d

$ ssh pr_developer@xx.xx.xx.xx git-receive-pack /var/www/vhosts/xxxxxxxxxx/git/delphi/
00888c1bc7a0081e88bef034efb47ad6f7b14f3ce07e refs/heads/master report-status delete-refs side-band-64k quiet ofs-delta agent=git/1.9.1
0000Killed by signal 2.


我接下来要做的就是改变pr_developer的shell。 / bin / bash和/ usr / bin / git-shell都没有解决它 - 唯一的区别是你不能再用git shell以交互方式登录。

pr_developer用户没有.bashrc输出额外的东西!当我使用该用户登录时,它通常会显示"欢迎使用Ubuntu" -Message,然后将光标留给我pr_developer@servername:~$
那么"欢迎来到Ubuntu"显然似乎并没有打扰git,但用户名的外印确实存在,我是对的吗?

Kenster,实际上让我想到了为用户禁用TTY的想法。我通过在sshd_config中添加以下行,重新启动并尝试再次克隆来尝试此操作

Match User pr_developer
    PermitTTY no

不幸的是,它没有帮助!

任何人都知道该怎么办?谢谢和问候

1 个答案:

答案 0 :(得分:0)

就我而言,此行为是由GIT_SSH环境变量引起的。设置为:  GIT_SSH=C:\Program Files\PuTTY\plink.exe 解决方案只是删除环境变量:  set GIT_SSH=