
Estou configurando uma instância EC2 com Terraform e preciso executar um script grande durante esse processo. Quero baixar o script do nosso repositório gitlab com algo como:
git clone [email protected]:a_name/project.git
Cloning into 'project'...
The authenticity of host 'gitlab.something.org (12.34.56.78)' can't be established.
ECDSA key fingerprint is SHA256:....
Are you sure you want to continue connecting (yes/no)? yes
Cloning into ...
Quando executo isso na linha de comando, preciso confirmar, mas isso não é possível na minha situação.
No entanto, /var/log/cloud-init-output.log
vejo isso (depois de ter carregado a chave privada correta):
Cloning into 'project'...
Host key verification failed.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Espero que esse erro seja simplesmente o resultado de não responder com um 'sim' - existe uma maneira de dizer ao git que está tudo bem, que sei o que estou fazendo e continue com isso?
Responder1
Use seu sistema automatizado para implantar um known_hosts
arquivo que possua as chaves de host corretas. Você pode copiar as entradas de seus próprios hosts_conhecidos, por exemplo, usandossh-keygen -F gitlab.something.org
(isso funciona mesmo se o arquivo tiver sido criptografado).
O arquivo pode ser implantado em ~/.ssh/known_hosts
ou em /etc/ssh/ssh_known_hosts
.
Observe que a verificação da chave do hostnão éali apenas para você confirmar o que está fazendo; está lá para confirmar se o que você está tentando fazer corresponde ao que realmente está acontecendo. Assim como o HTTPS, ele serve para proteger contra fatores externos, como ataques MITM – o URL que você inseriu pode estar 100% correto o tempo todo, mas os pacotes podem ser redirecionados repentinamente para o servidor errado meses ou anos depois.