git push возвращает фатальную ошибку: ошибка протокола: неправильный символ длины строки

Я настроил удаленный репозиторий Git на принадлежащей мне общей учетной записи хоста. Чтобы позволить другому разработчику выполнять push/pull, я добавил его открытый ключ (id_rsa.pub) в конец .ssh/authorized_keys на общем хосте. Затем он смог сделать «git push». Но я хочу убедиться, что он не может делать ничего другого на моем общем хосте, кроме доступа к git, поэтому я добавил это в начало его записи в author_keys, согласно man authorized_keys:

command="/usr/bin/git",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty ssh-rsa ...

Теперь, когда он выполняет git-push, он отвечает в командной строке «фатальной: ошибка протокола: неправильный символ длины строки».

Я искал в Google и нашел других, имеющих эту проблему, но не смог найти адекватного ответа о том, как решить эту проблему, не позволяя этому другому пользователю иметь доступ к оболочке в моей учетной записи общего хоста.


person Lawrence I. Siden    schedule 11.07.2010    source источник


Ответы (2)



Проверьте, есть ли у вас локальная команда в вашем ~/.ssh/config, например

Host *
    LocalCommand echo 'Connected as "'%r'" to "'%h'"' ; echo 'SSH host "'%n'"'

Если вы это сделаете, убедитесь, что вы не выполняете эту команду при использовании серверов git. Вы можете сделать это, переопределив LocalCommand только для нужных хостов:

Host *github*
    LocalCommand ''

Host *
    LocalCommand echo 'Connected as "'%r'" to "'%h'"' ; echo 'SSH host "'%n'"'
person luismartingil    schedule 25.09.2014
comment
Спасибо, рву на себе волосы уже два дня. - person SinaOwolabi; 03.08.2020