Eu tenho três servidores (dois ubuntu 16.04, um mac mini) e vários macbooks.
Um servidor ubuntu é para o gitlab e o outro é um servidor interno do site.
O mac mini está executando um IC.
Recentemente, o servidor gitlab foi substituído por outro servidor gitlab. (Hardware substituído, mesmo endereço IP e nome do host, novo software, nova chave ssh, todos os outros hardwares (os outros servidores e laptops) estão usando as chaves ssh como antes).
Qualquer um dos macbooks pode usar SSH em qualquer um dos servidores (usando o nome de usuário / senha de um usuário no servidor) e eles podem usar o Git para clone, push, etc com o servidor git via chave pública.
O servidor do site pode SSH (via chave pública) no servidor git, mas uma vez que a mensagem de boas vindas aparece, a conexão é encerrada. O servidor do site não pode usar o git via chave pública, pois o Git solicita uma senha, exceto quando não funciona e usa a chave pública que dura por algum tempo, ela só começa a funcionar usando testes no diretório de documentos do usuário, se Eu tento clonar novamente no diretório /var/www
git breaks (isso pode ser coincidência, ele só funcionou duas vezes).
O IC não tem problemas para se conectar ao servidor git.
Usando ssh -v, a saída mostra que o ssh está usando a chave pública correta.
Então, execute o seguinte comando no servidor do site
ssh [email protected]
conecta (e depois desconecta), mas
git clone [email protected]:somerepo.git
pede a senha do usuário git.
O servidor do site tem um usuário (com uma chave ssh) registrado no gitlab.
Exemplo de saída de várias chamadas: link