Git Remote: Erreur: fatal: erreur de protocole: mauvaise longueur de la ligne de caractère: Unab
  j'ai mis en place un serveur git et je veux maintenant pousser d'abord ma pension du client.
J'ai utilisé  git push origin master  et j'ai eu 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 le shell mais il est toujours "Unab". Je ne trouve pas de solution pour ce message d'erreur.
j'ai configuré le serveur avec" authorized_keys " et SSH. (Je peux y connecter, à l'aide de SSH.)
Il semble être un git problème?
BTW: le serveur est configuré dans une Windows 7 VM
28 réponses
  ce message d'erreur est un peu obtus, mais ce qu'il essaie en fait de vous dire c'est que le serveur distant n'a pas répondu avec une bonne réponse git.  Finalement, il y avait un problème sur le serveur qui exécutait le processus  git-receive-pack .  
  dans le protocole Git, les quatre premiers octets doivent être la longueur de la ligne.  Au lieu de cela, ils étaient les caractères  Unab  ...  ce qui est probablement le début d'un message d'erreur quelconque.  (c'est à dire, c'est probablement "  Unable to...  " ne quelque.)  
  que se passe-t-il quand vous lancez  ssh <host> git-receive-pack <path-to-git-repository>  ?  Vous devriez voir le message d'erreur sur lequel votre client git aboie et vous pourriez être en mesure de le corriger.  
j'ai eu un problème similaire, mais le message d'erreur exact était:
fatal: erreur de protocole: mauvaise longueur de la ligne de caractère: Usin
 C'est dans Windows, avec GIT_SSH mis au chemin de plink.exe  de mastic.  
problèmes et solutions possibles:
-  assurez-vous que le chemin vers 
plink.exeest correct. Le chemin de style Unix fonctionne aussi bien, par exemple/c/work/tools/PuTTY/plink.exe -   assurez-vous que L'agent clé de PuTTY (  
pageant.exe) est en cours d'exécution - assurez-vous que l'agent clé contient une clé valide pour accéder au serveur
 
Peut-être que vous avez une déclaration dans le serveur .bashrc qui produit des résultats. J'ai, par exemple, a 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 rvm sera (à tort) interprétée comme provenant de git. Ainsi le remplacer par:
rvm use ruby-1.9.3-p194@rails32 > /dev/null
  
    	                après avoir chargé la clé privée SSH dans les Extensions Git, ce problème est résolu.
j'ai eu le même genre de problème après avoir installé GIT sur Windows. Au début, ça a fonctionné; puis, un jour plus tard (après un redémarrage de PC), ça n'a plus marché, et j'ai eu ça:
$ git pull
fatal: protocol error: bad line length character: git@
  
  le problème était qu'après le redémarrage, le concours de mastic a commencé automatiquement.exe n'avait plus la clé privée active. Quand vous ajoutez une clé dans le concours, ce n'est pas un paramètre persistant par défaut. J'ai encore dû rajouter la clé, et ça a bien marché. Donc, pour ce cas, il est nécessaire pour faire charger la clé pagenant automatiquement, comme discuté ici:
J'ai eu un problème similaire sur Windows en utilisant Git Bash. J'ai toujours eu cette erreur en essayant de faire un clone git. Le dépôt était sur une machine Linux avec GitLab installé.
git clone git@servername:path/to/repo
fatal: protocol error: bad line length character: git@
  
  j'ai fait en sorte que la clé ssh soit générée. La clé publique a été ajoutée sur GitLab. L'agent ssh était en cours d'exécution et la clé générée a été ajoutée ( GitHub link ).
Je n'avais plus le choix et j'ai finalement essayé de fermer Git Bash et de l'ouvrir de nouveau par un clic droit "Exécuter en tant qu'Administrateur". Travaillé par la suite.
Vérifiez vos fichiers de démarrage sur le compte utilisé pour vous connecter à la machine distante pour les déclarations" echo". Pour le bash shell, ce sont les vôtres .bashrc et .bash_profile etc. Edward Thomson a raison dans sa réponse, mais un problème spécifique que j'ai éprouvé est quand il ya une impression chaudière-plaque lors de la connexion à un serveur via SSH. Git va obtenir les quatre premiers octets de cette plaque chauffante et augmenter cette erreur. Maintenant, dans ce cas précis, je vais deviner que "Unab" est en fait le travail "Impossible..."ce qui indique probablement qu'il y a quelque chose d'autre qui ne va pas sur l'hôte Git.
pour moi, c'est parce que j'ai récemment ajouté
RequestTTY force
  
  vers .SSH / config
commentant ceci a permis à cela de fonctionner
Cela pourrait aider quelqu'un. Quand j'ai essayé de cloner un projet à partir D'une instance EC2, j'ai eu l'erreur suivante:
Cloning into 'repo1'...
fatal: protocol error: bad line length character: logi
  
  la résolution pour moi comprend les étapes suivantes:
- S'assurer que la clé SSH (publique) est ajoutée/mise à jour dans L'instance EC2.
 - S'assurer que l'agent d'authentification (dans mon cas son concours=Putty Authentication Agent) est en cours d'exécution et que la clé privée correspondante est chargée.
 -    
utilisez la clé EC2 SSH ID pour la clé publique pour le clone git. Exemple:
git clone ssh: / / {SSH Key ID}@someaccount.amazonaws.com/v1/repos/repo1
 
 dans mon cas après fetch il a été écrit: fatal: protocol error: bad line length character: Pass . Aussi après push j'ai eu:  fatal: protocol error: bad line length character: git@
Done .  
après le redémarrage de Windows j'ai dû lancer "PuTTY agent" (concours.exe) et ajouter une clé privée qui a disparu à partir d'une liste de clés.
l'erreur transformée en: fatal: erreur de protocole: mauvaise longueur de ligne caractère: fata
après avoir ajouté l'emplacement de git-upload-pack au chemin du système.
le problème semble être une apostrophe ajoutée autour du nom du dépôt: regarder avec un outil comme Process Monitor (de sys internals), qui ont été ajoutés par le client Git. Il semble être un git spécifiques de problème windows.
j'ai essayé la même ligne de commande dans le invite du serveur: le message d'erreur est "fatal: un référentiel (ou l'un des répertoires parents): .git "
en conclusion, pour moi ça ressemble à un bug logiciel. Sachez que je ne suis pas un git expert, c'est la première fois que j'utilise git, je viens de subversion et de perforce.
J'ai eu le même problème que Christer Fernstrom. Dans mon cas, c'était un message que j'avais mis dans mon .bashrc ça me rappelle de faire une sauvegarde quand je n'en ai pas fait depuis quelques jours.
ce qui suit peut aider quelqu'un: En essayant de cloner un projet que j'ai sur mon instance AWS EC2 j'ai eu l'erreur suivante:
Cloning into 'AWSbareRepo'...
fatal: protocol error: bad line length character: Plea
  
  cela a été causé en essayant de ssh comme root au lieu de EC2-USER. si vous faites SSH sans faire un clone git... vous verrez l'Erreur msg dans quelque chose du genre "s'il vous plaît connectez-vous avec ec2-user" Une fois que j'ai fait un clone git en tant qu'utilisateur ec2, c'était bien.
  je rencontre aussi cette erreur de temps en temps, mais quand elle le fait, cela signifie que ma branche n'est pas à jour donc je dois faire  git pull origin <current_branch>   
FYI j'ai reçu ce même message d'erreur après avoir mis à niveau un conteneur CentOS6 en CentOS7 -- certaines opérations git ont commencé à échouer lors de la construction du conteneur, par exemple
# git remote show origin
fatal: protocol error: bad line length character: Inva
  
  exécuter ssh m'a donné une erreur que je pouvais rechercher sur:
# ssh git@bitbucket.org
Invalid clock_id for clock_gettime: 7
  
    qui m'a conduit à    https://github.com/wolfcw/libfaketime/issues/63    où j'ai réalisé que j'avais oublié que j'avais un  LD_PRELOAD=/usr/local/lib/faketime/libfaketime.so.1  dans un Fichier parent Dockerfile. Commentant que fixe le erreur.  
dans mon cas, le problème était un Putty 32-bit et un concours de beauté.exe-il ne peut pas communiquer avec 64-bit TortoisePlink.EXE. Remplacer 32-bit Putty par une version 64-bit a résolu le problème.
pour moi ajoutant les mêmes détails de l'hôte dans le mastic avec la clé privée (convertir avec puttygen) travaillé. Aucune commande de git bash après ça n'a eu de problème.
  j'ai eu la même erreur  "fatal: protocol error: bad line length character: shmi"  
D'où le  shmi  est le nom d'utilisateur dans mon cas.
J'ai changé SSH de PuTTY en OpenSSH dans  "Git Extensions->Settings->SSH"  .
Il a aidé.  
on a rencontré ça aussi.
Counting objects: 85, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (38/38), done.
Writing objects: 100% (38/38), 3.38 KiB | 0 bytes/s, done.
Total 38 (delta 33), reused 0 (delta 0)
Auto packing the repository for optimum performance.
fatal: protocol error: bad line length character: Remo
error: error in sideband demultiplexer
  
  Je ne sais pas les détails de gitty sur ce qui a mal tourné, mais dans notre cas ce qui a déclenché c'était que le disque sur le serveur était plein.
ça pourrait être un accès de sécurité sur votre machine, êtes-vous en train de diriger un concours (qui est un agent putty)?
vous pouvez toujours avoir un lien http vers votre projet git. Vous pouvez utiliser cela à la place du lien ssh. C'est juste une option que vous avez
Eh bien, j'ai eu ce même problème (Windows 7). Essayez d'obtenir des pensions par mot de passe. J'utilise Gitbash + Plink (variable D'environnement GIT_SSH) + Pageant. Supprimer GIT_SSH (temporaire) m'aide. Je ne sais pas pourquoi je ne peux pas utiliser login by pass et login avec RSA en même temps...
Git ne demande pas de mot de passe et échoue avec un message cryptique similaire" fatal: protocol error: bad line length character: user " si vous n'avez pas votre configuration d'authentification de clé privée aussi.
https://www.digitalocean.com/community/tutorials/how-to-configure-ssh-key-based-authentication-on-a-linux-server indique comment spécifier une clé publique sur le serveur. Fondamentalement, ajouter la clé publique à ~ / .ssh/authorized_keys ou ~/.ssh / authorized_keys2
j'ai dû lutter un peu sur la façon de fournir la clé privée de la Bash Git sur la machine windows. Réponse de Dan McClain dans https://serverfault.com/questions/194567/how-do-i-tell-git-for-windows-where-to-find-my-private-rsa-key/382801#382801 décrit cela. En plus de sa réponse, dans mon cas, le fichier de clés privées devait s'appeler id_rsa.pub
réponse tardive ici, mais espérons que cela aidera quelqu'un. Si c'est une erreur de protocole, il doit faire quelque chose avec votre git local qui n'est pas capable de communiquer avec le Git distant. Cela peut se produire si vous avez cloné le repo via ssh et un peu plus tard, vous avez perdu les clés du repo ou votre agent ssh ne peut plus trouver ces clés.
Solution
-    
Générer une nouvelle clé et ajouter votre repo git ou configurer votre agent ssh pour charger le les touches si vous avez encore les clés avec vous et pas avec quelqu'un d'autre ;)
 -   
une autre solution rapide est d'aller dans votre répertoire
.gitet d'éditer le fichierconfigde[remote "origin"] urldegitàhttpde sorte que les touches ssh ne sont pas nécessaires pour pousser et il reviendra à demander votre nom d'utilisateur et votre mot de passe.[remote "origin"] url = git@gitlab.*****.com:****/****.git fetch = +refs/heads/*:refs/remotes/origin/* 
changement à
    [remote "origin"]
    url = http://gitlab.*****.com/****/****.git
    fetch = +refs/heads/*:refs/remotes/origin/*
  
    	                changer l'exécutable SSH de builtin à nativ sous Paramètres / Contrôle de version / git a fait l'affaire pour moi.
pour les utilisateurs de GitExtension:
j'ai connu le même problème après la mise à niveau de git pour 2.19.0
Solution:
Tools > Settings > Git Extensions > SSH
sélectionner [ OpenSSH ] au lieu de [ PuTTY ]
vérifiez si L'accès à L'interpréteur de commandes est autorisé sur le serveur.