Gerei minha chave ssh em minha máquina local.
Em seguida, usei o seguinte comando para copiar minha chave pública em meu servidor:
ssh-copy-id username@remote_host
. Tudo correu bem.Confirmei que a minha máquina local
~/.ssh/id_rsa.pub
foi copiada para o meu servidor emmy_user's_home_directory/.ssh/authorized_keys
. Não há outros arquivos lá.Também copiei a mesma chave pública para o Gitlab.
Quando tento fazer
git clone
um repositório no servidor, me dizem:
[email protected]: Permission denied (publickey,keyboard-interactive).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
- Posso fazer ssh com bastante facilidade no meu servidor. Mas como meu servidor não contém minha chave privada, faz sentido para mim que eu não seria capaz de clonar ssh git. Qual é o procedimento normal aqui? Posso fazer um download normal de https. Essa é a rota padrão?
Responder1
Você pode usar ssh -A
para encaminhar seu agente ssh para o host remoto, que usará suas chaves locais do servidor remoto sem enviar as próprias chaves.
Embora pareça uma opção segura, faça isso apenasse você confia totalmente no servidor remoto(ou seja, não habilite isso por padrão). O agente ssh encaminhado pode ser usado por qualquer pessoa com o mesmo usuário remoto que o seu ou com privilégios de root.
Se você decidir seguir esse caminho, recomendo adicionar chaves ao agente ssh-add -c
para que você seja solicitado a confirmar quando uma chave for usada.
Responder2
git é descentralizado. Pode buscar do Gitlab para o seu PC e, em seguida, enviar do seu PC para o servidor. O cliente ssh é o seu PC para ambos, portanto, sua chave privada ou agente encaminhado não toca no servidor.
Ou pode ter várias chaves ssh. Um pessoal para o seu PC e outro diferente para o servidor. Mais chaves para gerenciar, mas é possível monitorar e controlar separadamente, estilo conta de serviço.
Ou não use o git como ferramenta de implantação. Gere um pacote ou algum outro arquivo e instale-o como faria com outro software.