![Gitolite를 설치한 후 SSH에 로그인할 수 없습니까? 채널 0에서 PTY 할당 요청이 실패했습니다.](https://rvso.com/image/1316779/Gitolite%EB%A5%BC%20%EC%84%A4%EC%B9%98%ED%95%9C%20%ED%9B%84%20SSH%EC%97%90%20%EB%A1%9C%EA%B7%B8%EC%9D%B8%ED%95%A0%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EA%B9%8C%3F%20%EC%B1%84%EB%84%90%200%EC%97%90%EC%84%9C%20PTY%20%ED%95%A0%EB%8B%B9%20%EC%9A%94%EC%B2%AD%EC%9D%B4%20%EC%8B%A4%ED%8C%A8%ED%96%88%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
다음 지침에 따라 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 파일을 편집하는 방식 때문에 개인 키로 인증할 수 없습니다. 그러나 위에 나열된 플래그를 사용하여 기본 인증을 지정하면 해당 파일은 어떤 방식으로도 참조되지 않습니다.