fatal: Protokollfehler: falsche Zeilenlänge Zeichen: Unab

8

Ich habe eine Windows 2008 R2 Server Standard Edition. Ich habe FreeSSHd zusammen mit Git installiert. Für die Windows-Firewall sind Ausnahmen auf Port 22 festgelegt. Ich habe den SSH-Server so eingerichtet, dass er nur öffentliche SSH-Schlüssel akzeptiert. Ich kann mich über Terminal mit dem Server anmelden (d. H.% Co_de%). Wenn ich den Befehl ssh gregory@hostname verwende (z. B. git clone ), erhalte ich folgende Fehlermeldung:

  

fatal: Protokollfehler: Zeilenlänge Zeichen: Unab

Ich habe einen absoluten Verlust, was das verursacht. Ich habe Shell-, SFTP- und Tunnel-Protokolle aktiviert.

    
gwrichard 12.03.2012, 03:05
quelle

4 Antworten

4

Vergessen Sie freeSSHd. Es kann nicht für die Ausführung mit Git konfiguriert werden.

Sie haben zwei (soweit ich finden konnte) Möglichkeiten - gehen Sie mit einem anspruchsvolleren SSH-Server für Windows und implementieren Sie dies dann: Ссылка

oder gehen Sie mit OpenSSH (CopSSH)

Ссылка

Ссылка

Richten Sie einen Git-Server mit msysgit unter Windows ein

Ссылка

    
Jimmytaker 31.12.2012, 17:32
quelle
2

Git über SSH verwendet die Ausgabe der SSH-Pipe wortwörtlich. Wenn diese Ausgabe falsche Daten enthält, die nicht mit git in Zusammenhang stehen, kann der Befehl git diesen nicht analysieren und bricht mit einer obskuren Fehlermeldung ab. Das kann passieren, wenn Sie ein Benutzerskript haben, das zum Beispiel beim Verbinden anzeigt, oder wenn etwas eine Fehlermeldung ausgibt, die von git nicht verstanden wird.

Sie werden feststellen, dass "Unab" wie der Anfang von "Unable" aussieht, vermutlich eine Fehlermeldung, die für einen Menschen gedacht ist, nicht wirklich.

Was passiert, wenn Sie den folgenden Befehl ausführen?

%Vor%

Theoretisch sollten Sie eine Fehlermeldung bekommen, die mit 'Unable' beginnt. Zum Beispiel: "Ich kann git-upload-pack nicht finden". In diesem Fall besteht die Lösung darin, git-upload-pack zu Ihrem Pfad hinzuzufügen!

    
Balinares 06.09.2012 13:50
quelle
0

Ich hatte heute dasselbe Problem bei meinem Job ... also habe ich Folgendes gefunden: Einrichten eines Git-Servers unter Windows Server 2008 R2

Was Sie sehen müssen, ist unten:

  

Git funktioniert auf dem Server:

     
  1. Falls noch nicht geschehen, installieren Sie msysgit auf Ihrem Server (ich würde empfehlen, es direkt in C: \ Git oder zumindest in einem Pfad zu installieren, der   keine Leerzeichen, weil ich einige seltsame Probleme mit "beabstandeten" Pfaden hatte)

  2.   
  3. Fügen Sie C: \ Git \ bin zur PATH-Variablen hinzu. Dies ist sehr wichtig!! sh.exe und andere Abhängigkeiten sind in diesem Ordner

  4.   
  5. Gehen Sie jetzt zu C: \ Git \ bin und fügen Sie die folgenden zwei Dateien hinzu

  6.   

gup.sh grp.sh   4. Öffnen Sie gup.sh in Ihrem bevorzugten Editor und fügen Sie

ein      

C:/Git/libexec/git-core/git-upload-pack.exe $*   5. Öffnen Sie grp.sh und fügen Sie

ein      

C: /Git/libexec/git-core/git-receive-pack.exe $ * Das $ * im Wesentlichen   entfernt die einfachen Anführungszeichen vom Repository-Pfadargument, also a   Pfad, der Leerzeichen enthält, wird hier auch nicht funktionieren, denke ich

     

Grundsätzlich sind wir jetzt fertig und sollten alle Git-Operationen vom Client ausführen   Arbeit. Für einen Klon müssen Sie

eingeben      

git clone -u 'sh gup.sh' ssh://username@server/path/to/myrepo.git oder a   Push wäre

     

git push --exec 'sh grp.sh' ssh://username@server/path/to/myrepo.git   aber das ist nicht sehr elegant.

     

Dinge aufräumen:

     
  1. Zunächst wollen wir den gesamten Repo-Pfad durch Angabe eines Remote-Alias ​​
  2. loswerden   

git remote addursprung ssh: //username@server/path/to/myrepo.git Wo   "Ursprung" wäre der Aliasname

     
  1. Als nächstes setzen wir die Konfiguration für das git-upload-pack und das git-receive-pack, so dass wir nicht ständig auf das Shell-Skript verweisen müssen.
  2.   

git config remote.origin.uploadpack 'sh gup.sh' und

     

git config remote.origin.receivepack 'sh grp.sh'   Das ist es. Jetzt können wir die normalen Git-Befehle ohne zusätzliche Parameter verwenden:

     

git Klon Ursprung git push Herkunft master git pull Herkunft ...

    
NeyMello 03.12.2013 20:42
quelle
0

In meinem Fall hatte ich ein

%Vor%

in meiner .bashrc und .bash_profile, die ich verwendet habe, um einige Verbindungsprobleme zu diagnostizieren. Dies gab mir die Nachricht:

%Vor%

wenn ich versucht habe, git pull von einem ssh Repo zu bekommen. Durch Entfernen der echo -Anweisungen funktioniert alles. Die ' [VSR ' sind nur die ersten 4 Zeichen von echo .

    
akunak 15.07.2014 18:25
quelle

Tags und Links