Não é possível logar no ssh após instalar o Gitolite? Solicitação de alocação de PTY falhou no canal 0

2

Depois de instalar o Gitolite no meu Synology DiskStation NAS de acordo com estas instruções: link

Eu percebi que consegui instalar o gitolite, mas por alguma razão eu não consegui rodar a instalação usando o usuário "git" - mas consegui fazer isso como "root"

Após a instalação, efetuei o logout. Mas agora toda vez que eu tentei logar via ssh novamente: $ ssh root @ iptonas

Eu recebi este erro: Solicitação de alocação de PTY falhou no canal 0

Eu li em algum lugar que o gitolite desativa logins do ssh agora? De que outra forma eu posso voltar ao shell ...?

    
por Jay 31.05.2012 / 08:57

1 resposta

2
error: PTY allocation request failed on channel 0

Perfeitamente normal, esperado e não bloqueador (ou seja, a operação do ssh prosseguirá)

No entanto, você fez a instalação como root, o que é ruim, especialmente quando você considera a página ssh Gitolite :

If you're installing gitolite, you're a "system admin", like it or not.
If you're using the default ssh mode (i.e., not http mode), ssh is a necessary skill. Please take the time to learn at least enough to get passwordless access working.

O principal aspecto a ser entendido no Gitolite é o uso do comando forçado , a fim de negar o shell interativo e interceptar qualquer comando (incluindo os comandos do git), permitindo que ele imponha o controle de acesso ao Git repos.

Isso significa que o arquivo ~root/.ssh/authorized_keys contém uma linha com:

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

O no-port-forwarding é responsável por essa mensagem de aviso " PTY allocation request failed on channel 0 ". Mas isso não impede que as operações do Gitolite sejam executadas corretamente.

Veja " como o gitolite usa toda essa magia ssh? ".

Para o problema ssh, procure em " Resolução de problemas de SSH ". Você precisa obter acesso ao seu servidor de outra maneira que não seja ssh e remover a linha que começa por command em ~root/.ssh/authorized_keys .

Do you know how I might use Telnet to redo the gitolite installation process?

Uma vez logado como root:

  • remova a linha que começa por comando no arquivo ~root/.ssh/authorized_keys .
  • verifique se sua chave pública raiz está registrada no mesmo arquivo (sem qualquer ' command= ' na frente dele.

Isso garantirá o acesso root por meio do ss.

Em seguida, refaça a instalação, mas com sudo git primeiro.
você deve ser 'git' ao fazer essa instalação.

Primeiro, você deve gerar, no lado do cliente, uma chave git private ssh e uma chave pública git.pub .
Copie a chave pública no servidor: você passará essa chave pública para o comando gitolite install .

E como Ryan menciona sua resposta , usa

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

(para vincular a instalação a ~git/bin em vez do diretório " /bin " do caminho raiz do sistema).

    
por 31.05.2012 / 09:30