Ser capaz de acessar gitolite@server:~/repositories/gitolite-admin.git
, mas não gitolite@server:gitolite-admin
indica que você não está "usando" o Gitolite, mas apenas usando acesso simples baseado em SSH ao usuário do gitolite.
Se ssh gitolite@server echo normal access
rende normal access
, a chave que você está usando não está restrita a passar por Gitolite. Se você estivesse passando por Gitolite, veria algo como bad command: echo normal access
.
Isso pode acontecer se você tiver uma chave que você usa para o SSH no próprio usuário gitolite e tentar usar a mesma chave para autenticar como um usuário Gitolite. Uma chave de "acesso normal" estará presente no .ssh/authorized_keys
do gitolite sem nenhum prefixo especial. A linha para uma chave configurada para passar pelo Gitolite será iniciada como command="/path/to/gl-auth-command gitolite-username",…
.
Se você precisar de acesso normal baseado em SSH para o usuário gitolite e acesso baseado em Gitolite, deverá configurar chaves separadas para esses propósitos, para que você possa especificar qual chave você deseja usar com IdentityFile
opções em seu .ssh/config
file (talvez também IdentitiesOnly
se você achar que o ssh está usando a tecla "errado" só porque você já carregou em seu ssh-agent ).
Por exemplo:
Use uma de suas chaves "padrão" (um dos padrões de ssh (por exemplo, ~/.ssh/id_rsa
) ou alguma chave que você normalmente carregou em seu ssh-agent ) para acessar o Gitolite (ou seja, você tem a chave pública no ativo keydir/your-gitolite-user-name.pub
).
Gere ~/.ssh/gitolite-user
para usar diretamente no usuário do gitolite. Use ssh -i ~/.ssh/gitolite-user gitolite@server
para efetuar login. Ou adicione uma entrada personalizada a ~/.ssh/config
:
Host gitolite-user
User gitolite
HostName server
IdentityFile ~/.ssh/gitolite-user
IdentitiesOnly yes
para que você possa fazer apenas ssh gitolite-user
no login.