git 서버를 설정하고 이제 클라이언트에서 처음에 내 저장소를 푸시하고 싶습니다. git push origin master
이 오류 메시지를 사용 하고 나타납니다.
fatal: protocol error: bad line length character: Unab
나는 무엇이 잘못되었는지 모른다. “Unab”이 무엇인지 모르겠습니다. 셸 크기를 조정하려고했지만 여전히 “Unab”입니다. 이 오류 메시지에 대한 해결책을 찾을 수 없습니다.
“authorized_keys”와 SSH로 서버를 설정했습니다. (SSH를 사용하여 연결할 수 있습니다.)
자식 문제인 것 같습니까?
BTW : 서버가 Windows 7 VM에 설정되어 있습니다.
답변
이 오류 메시지는 약간 둔감하지만 실제로 원격 서버가 적절한 git 응답으로 응답하지 않았다는 것을 알려줍니다. 궁극적으로 git-receive-pack
프로세스를 실행하는 서버에 문제가있었습니다 .
Git 프로토콜에서 처음 4 바이트는 줄 길이 여야합니다. 대신, 그들은 문자였습니다 Unab
… 아마도 일종의 오류 메시지의 시작일 것입니다. (즉, ” Unable to...
“일 가능성이 있습니다.)
달리면 어떻게 ssh <host> git-receive-pack <path-to-git-repository>
되나요? git 클라이언트가 실행 중이라는 오류 메시지가 나타나고이를 수정할 수 있습니다.
답변
비슷한 문제가 있었지만 정확한 오류 메시지는 다음과 같습니다.
치명적 : 프로토콜 오류 : 잘못된 줄 길이 문자 : Usin
이것은 Windows에 있으며 PuTTY GIT_SSH
의 경로 로 설정됩니다 plink.exe
.
가능한 문제 및 해결책 :
- 경로
plink.exe
가 올바른지 확인하십시오 . 예를 들어 유닉스 스타일 경로도 잘 작동합니다./c/work/tools/PuTTY/plink.exe
- PuTTY (
pageant.exe
) 의 키 에이전트 가 실행 중인지 확인 - 키 에이전트에 서버에 액세스하기위한 유효한 키가 포함되어 있는지 확인하십시오.
답변
GitExtension 사용자의 경우 :
git을 2.19.0으로 업그레이드 한 후에도 동일한 문제가 발생했습니다.
해결책:
도구> 설정> Git 확장> SSH
[ PuTTY ] 대신 [ OpenSSH ]를 선택하십시오 .
답변
Windows에 GIT를 설치 한 후에도 같은 종류의 문제가 발생했습니다. 처음에는 효과가있었습니다. 그런 다음 하루 후 (PC 재부팅 후) 더 이상 작동하지 않았고 다음과 같은 결과를 얻었습니다.
$ git pull
fatal: protocol error: bad line length character: git@
문제는 재부팅 후 자동으로 시작된 Putty “pageant.exe”가 더 이상 개인 키를 활성화하지 않았다는 것입니다. Pageant에 키를 추가하면 기본적으로 영구 설정이 아닙니다. 키를 다시 추가해야했는데 제대로 작동했습니다. 따라서이 경우 여기에 설명 된대로 pagenant가 키를 자동으로로드하도록해야합니다.
답변
출력을 생성하는 서버의 .bashrc에 명령문이있을 수 있습니다. 예를 들어 다음과 같습니다.
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
rvm use ruby-1.9.3-p194@rails32
이 경우 rvm 사용의 출력은 git에서 오는 것으로 (잘못) 해석됩니다. 따라서 다음으로 교체하십시오.
rvm use ruby-1.9.3-p194@rails32 > /dev/null
답변
Git Extensions에서 SSH 개인 키를로드하면이 문제가 해결됩니다.
답변
모든 출력을 .bashrc
에서 stderr
다음으로 리디렉션 할 수 있습니다 .
# inside .bashrc
echo 'some error/warning/remind message' 1>&2
자식은이 기호를 무시합니다