2010-07-11 9 views
1

제가 소유하고있는 공유 호스트 계정에 원격 Git 저장소를 설정했습니다. 다른 개발자가 밀어 넣을 수 있도록 공개 호스트 (id_rsa.pub)를 공유 호스트의 .ssh/authorized_keys 끝에 추가했습니다. 그런 다음 그는 "git push"를 할 수있었습니다. 그러나 나는 그가 내 공유 호스트 만 접근 자식에 다른 작업을 수행 할 수 있는지 확인하려면, 그래서 man authorized_keys에 따라 authorized_keys에 자신의 항목의 시작이 추가 :git push는 "치명적 : 프로토콜 오류 : 잘못된 행 길이 문자"를 반환합니다.

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

을 그가 git- 않는 자 할 때 push 명령 행에서 "치명적 : 프로토콜 오류 : 잘못된 행 길이 문자"로 응답합니다.

나는이 문제가있는 다른 사용자를 찾았지만이 다른 사용자가 내 공유 호스트 계정에있는 셸에 액세스하지 못하게하는 대신이 문제를 해결하는 방법에 대한 적절한 답을 찾을 수 없습니다.

답변

3

당신은 당신의 ~/.ssh/config 같은

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

당신이 경우에

, 당신 있는지 확인하십시오 당신이 로컬 명령이있는 경우

command="/usr/bin/git-shell -c \"${SSH_ORIGINAL_COMMAND:-}\"",no-port-...
0

체크 같이 git-shell을 실행하는 다른 개발자의 키를 제한 할 필요가 git 서버를 사용할 때 해당 명령을 실행하지 마십시오. 원하는 호스트에 대해서만 LocalCommand을 무시하면됩니다.

Host *github* 
    LocalCommand '' 

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