windows git-致命:协议错误:错误的行长度字符:用户
首先:我很清楚stackoverflow/互联网上充斥着关于这个问题的类似问题——但没有人能回答这个问题,尽管我尝试了我能想象到的一切 所以,问题是,当从我的windows客户端使用git bash或git.exe时,我无法克隆、拉取、推送任何东西到我们Ubuntu服务器上的远程托管存储库。 确切的错误消息是: 致命:协议错误:错误的行长度字符:pr\u d pr_developer实际上是用户名,我用于ssh登录windows git-致命:协议错误:错误的行长度字符:用户,git,ssh,Git,Ssh,首先:我很清楚stackoverflow/互联网上充斥着关于这个问题的类似问题——但没有人能回答这个问题,尽管我尝试了我能想象到的一切 所以,问题是,当从我的windows客户端使用git bash或git.exe时,我无法克隆、拉取、推送任何东西到我们Ubuntu服务器上的远程托管存储库。 确切的错误消息是: 致命:协议错误:错误的行长度字符:pr\u d pr_developer实际上是用户名,我用于ssh登录 所以问题是服务器在开始时用用户名响应,而不是消息大小(我知道这是git所期望的)
所以问题是服务器在开始时用用户名响应,而不是消息大小(我知道这是git所期望的)。但是ssh-git-receive-pack测试成功了!
接下来我尝试的是改变pr_开发者的外壳。无论是/bin/bash还是/usr/bin/gitshell都没有解决这个问题——唯一的区别是你不能再使用gitshell交互登录了。
pr_开发者用户没有输出额外内容的.bashrc!当我与该用户一起登录时,它通常会显示“欢迎使用Ubuntu”消息,然后将光标留在
pr_developer@servername:~$
“欢迎使用Ubuntu”这句话显然对git来说并不麻烦,但用户名的输出却会麻烦git,对吗
Kenster,实际上让我想到了为用户禁用TTY。我尝试过在sshd_配置中添加以下行,重新启动并尝试再次克隆
Match User pr_developer
PermitTTY no
不幸的是,它没有帮助
有人知道该怎么做吗?感谢并问候在我的例子中,此行为是由
GIT_SSH
环境变量引起的。设置为:
GIT\u SSH=C:\Program Files\PuTTY\plink.exe
解决方案只是删除环境变量:
set GIT\u SSH=
请不要将您的命令作为屏幕截图发布,在您的问题中复制并通过它,并使用crtl+k作为代码格式化它。我们将更容易帮助您:-)您是否尝试使用其他用户克隆存储库?是的,事实上,我可以使用JetBrains PhpStorm克隆此存储库(ssh登录在那里工作正常…)。但我认为它在那里是有效的,因为他们使用自己的git java实现。现在我想将git与Borland/Embarcadero Delphi一起使用,并且必须链接到git可执行文件。它在那里不起作用,错误与我试图通过git-bash手动克隆它一样。您是否在ssh会话上强制使用tty?你能把你的问题包括在你的ssh客户端配置中吗?Hello@Kenster不,我没有在我的ssh会话中强制使用tty。关于我的ssh客户端配置,您想具体了解什么?我所做的示例只是通过命令行(git/unix工具附带的ssh客户端)进行的一个简单ssh连接。那样的话,我没有用过油灰。
Match User pr_developer
PermitTTY no