Digamos que eu tenha algum projeto privado no GitLab.
Para acessar este projeto da minha máquina local, estou:
- Gerar par de chaves ssh.
- Adicione a chave pública à minha conta (mygitlab.com/-/profile/keys).
- Faça
git clone [email protected]:mygroup/myproject.git
na máquina local. - Trabalhar.
Então eu quero implantar meu projeto no servidor de produção remoto 1.2.3.4
. Idealmente, quero apenas ssh
entrar neste servidor, clonar meu projeto e fazer git pull
toda vez que quiser atualizar a implantação de produção. Mas não consigo acessar meu repositório do servidor de produção porque não há chaves ssh em 1.2.3.4:/home/www-data/.ssh/
, portanto, se estou tentando fazer git clone
ou git pull
recebo Permission denied
um erro.
O que devo fazer nesta situação?
Na minha opinião, devo ter a capacidade de gerar um par de chaves ssh no servidor de produção e adicionar uma chave pública ao meu projeto. Mas não há como associar chave pública a projeto - apenas a conta. E não quero associar a chave pública do servidor de produção à minha conta porque é metodologicamente errado - há muitos desenvolvedores em nossa equipe e o servidor de produção não está associado a mim de nenhuma maneira especial.
Como você disse, você deve
generate ssh keypair on production server and add public key to my project
ir ao repositório, à esquerda configurações->repositório e, no meio, há "chaves de implantação". Cole a chave pública nas chaves de implantação e escolha um nome exclusivo. Depois disso, você pode usar essa chave para clonar. Também há documentação https://docs.gitlab.com/ee/user/project/deploy_keys/ .