首先关闭:我很清楚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
不幸的是,它没有帮助!
任何人都知道该怎么办?谢谢和问候
答案 0 :(得分:0)
就我而言,此行为是由GIT_SSH
环境变量引起的。设置为:
GIT_SSH=C:\Program Files\PuTTY\plink.exe
解决方案只是删除环境变量:
set GIT_SSH=