146 votes

Git à distance : Erreur : fatal : erreur de protocole : mauvais caractère de longueur de ligne : Unab

J'ai mis en place un serveur git et je veux maintenant pousser initialement mon repo depuis le client. J'ai utilisé git push origin master et j'obtiens ce message d'erreur :

fatal: protocol error: bad line length character: Unab

Je ne sais pas ce qui ne va pas. Je ne sais pas ce qu'est "Unab". J'ai essayé de redimensionner la coquille, mais c'est toujours "Unab". Je ne trouve pas de solution à ce message d'erreur.

J'ai configuré le serveur avec "authorized_keys" et SSH. (Je peux m'y connecter en utilisant SSH).

Il semble qu'il s'agisse d'un problème lié à git ?

BTW : Le serveur est installé dans une VM Windows 7.

136voto

Edward Thomson Points 21899

Ce message d'erreur est un peu obtus, mais ce qu'il essaie de vous dire, c'est que le serveur distant n'a pas répondu avec une réponse git correcte. En fin de compte, il y a eu un problème sur le serveur qui exécute la commande git-receive-pack processus.

Dans le protocole Git, les quatre premiers octets doivent correspondre à la longueur de la ligne. Au lieu de cela, il s'agit des caractères Unab ... ce qui est probablement le début d'un message d'erreur quelconque. (c'est-à-dire qu'il s'agit probablement de " Unable to... "faire quelque chose).

Que se passe-t-il lorsque vous exécutez ssh <host> git-receive-pack <path-to-git-repository> ? Vous devriez voir le message d'erreur que votre client git est en train de vomir et vous pourriez être en mesure de le corriger.

73voto

janos Points 22603

J'ai eu un problème similaire, mais le message d'erreur exact était :

fatal : erreur de protocole : mauvais caractère de longueur de ligne : Usin

Il s'agit de Windows, avec GIT_SSH au chemin d'accès de plink.exe de PuTTY.

Problèmes et solutions possibles :

  • Assurez-vous que le chemin d'accès à plink.exe est correcte. Les chemins d'accès de type Unix fonctionnent également très bien, par exemple /c/work/tools/PuTTY/plink.exe
  • Assurez-vous que l'agent clé de PuTTY ( pageant.exe ) est en cours
  • Assurez-vous que l'agent de gestion des clés contient une clé valide pour accéder au serveur.

37voto

Amit Shah Points 2607

Pour les utilisateurs de GitExtension :

J'ai rencontré le même problème après avoir mis à jour git vers 2.19.0.

Solution :

Outils > Paramètres > Extensions Git > SSH

Sélectionner [ OpenSSH ] au lieu de [ PuTTY ]

enter image description here

29voto

MaeseDude Points 351

J'ai eu le même genre de problème après avoir installé GIT sur Windows. Au début, cela a fonctionné ; puis, un jour plus tard (après un redémarrage du PC), cela n'a plus fonctionné, et j'ai obtenu ceci :

$ git pull
fatal: protocol error: bad line length character: git@

Le problème était qu'après le redémarrage, le Putty "pageant.exe" démarré automatiquement n'avait plus la clé privée active. Lorsque vous ajoutez une clé dans pageant, ce n'est pas un paramètre persistant par défaut. Il m'a suffi d'ajouter à nouveau la clé, et tout a bien fonctionné. Dans ce cas, il est donc nécessaire de faire en sorte que pagenant charge la clé automatiquement, comme indiqué ici :

https://www.digitalocean.com/community/tutorials/how-to-use-pageant-to-streamline-ssh-key-authentication-with-putty

18voto

Peut-être avez-vous une instruction dans le .bashrc du serveur qui produit une sortie. Par exemple, j'avais ceci :

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
rvm use ruby-1.9.3-p194@rails32

Dans ce cas, la sortie de l'utilisation de rvm sera interprétée (à tort) comme provenant de git. Remplacez-la donc par :

rvm use ruby-1.9.3-p194@rails32 > /dev/null

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X