Gitolite를 설치한 후 SSH에 로그인할 수 없습니까? 채널 0에서 PTY 할당 요청이 실패했습니다.

Gitolite를 설치한 후 SSH에 로그인할 수 없습니까? 채널 0에서 PTY 할당 요청이 실패했습니다.

다음 지침에 따라 Synology DiskStation NAS에 Gitolite를 설치한 후: http://www.bluevariant.com/2012/05/comprehensive-guide-git-gitolite-synology-diskstation/

나는 gitolite를 설치할 수 있다는 것을 깨달았지만 어떤 이유로든 "git" 사용자를 사용하여 설치를 실행할 수 없었습니다. 그러나 "root"로 설치를 실행할 수 있었습니다.

설치 후 로그아웃했습니다. 하지만 이제 ssh를 통해 다시 로그인을 시도할 때마다: $ ssh root@iptonas

다음 오류가 발생했습니다. 채널 0에서 PTY 할당 요청이 실패했습니다.

이제 gitolite가 SSH 로그인을 비활성화한다는 내용을 읽었습니까? 또 어떻게 쉘로 돌아갈 수 있나요..?

답변1

error: PTY allocation request failed on channel 0

완전히 정상적이고, 예상되며, 차단되지 않습니다(즉, SSH 작업이 추구합니다).

그러나 루트로 설치했는데 이는 좋지 않습니다. 특히 다음 사항을 고려할 때 더욱 그렇습니다.SSH Gitolite 페이지:

Gitolite를 설치하는 경우 좋든 싫든 "시스템 관리자"입니다..
기본 ssh 모드(즉, http 모드가 아님)를 사용하는 경우 ssh는 필수 기술입니다. 비밀번호 없는 액세스가 작동할 수 있도록 최소한 충분한 시간을 들여 학습하시기 바랍니다.

Gitolite에서 이해해야 할 핵심 측면은강제 명령, 대화형 셸을 거부하고 모든 명령(git 명령 포함)을 가로채서 Git 저장소에 대한 액세스 제어를 적용할 수 있습니다.

이는 ~root/.ssh/authorized_keys파일에 다음과 같은 줄이 포함되어 있음을 의미합니다.

command="/devit_home/users/vobadm/gitpoc/ce7/gitolite/bin/gitolite-shell gitoliteadm",no-port-forwarding,no-X11-for        warding,no-agent-forwarding,no-pty ssh-rsa AAAAB3N

no-port-forwarding해당 경고 메시지 " "에 대한 책임은 에 있습니다 PTY allocation request failed on channel 0. 그러나 이것이 Gitolite 작업이 제대로 실행되는 것을 방해하지는 않습니다.

보다 "Gitolite는 이 모든 SSH 마법을 어떻게 사용합니까?".

SSH 문제의 경우 "SSH 문제 해결".
이외의 다른 방법으로 서버에 액세스해야 하며 로 ssh시작하는 줄을 제거해야 합니다 .command~root/.ssh/authorized_keys


Gitolite 설치 과정을 다시 실행하기 위해 Telnet을 어떻게 사용할 수 있는지 아시나요?

루트로 로그인한 후:

  • 파일 에서 명령으로 시작하는 줄을 제거합니다 ~root/.ssh/authorized_keys.
  • 루트 공개 키가 동일한 파일에 등록되어 있는지 확인하십시오. 따라서 command=앞에 ' '가 없어야 합니다.

그러면 ss를 통한 루트 액세스가 보장됩니다.

그런 다음 설치를 다시 실행하되 먼저 설치를 수행하십시오 sudo git.
설치를 수행하려면 'git'이어야 합니다.

먼저 클라이언트 측에서 git개인 SSH 키와 git.pub공개 키를 생성해야 합니다.
서버의 공개 키를 복사합니다. 해당 공개 키를 명령에 전달합니다 gitolite install.

그리고라이언에서 언급그의 대답, 용도

DiskStation> /volume1/homes/git/gitolite/install -ln

~git/bin( "시스템 경로 루트 보호" 디렉터리 대신 설치를 연결하기 위해 /bin)

답변2

나는 Gitolite가 아마도 루트로 실행되어서는 안 된다는 점에 동의합니다. 나도 이런 실수를 했다. 도움이 될 경우를 대비해 몇 가지 추가 정보를 추가하세요.

SSH 명령에 다음 플래그를 추가하여 대상 시스템에 대한 루트로 SSH를 계속 실행할 수 있었습니다.

PreferredAuthentications=keyboard-interactive,password -o PubkeyAuthentication=no

물론 이는 루트 계정에 연결된 비밀번호가 있다고 가정합니다. Gitosis가 SSHknown_hosts 파일을 편집하는 방식 때문에 개인 키로 인증할 수 없습니다. 그러나 위에 나열된 플래그를 사용하여 기본 인증을 지정하면 해당 파일은 어떤 방식으로도 참조되지 않습니다.

관련 정보