Estou configurando uma instância do EC2 com o Terraform e preciso executar um script grande durante esse processo. Eu 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 carregar 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 este erro seja simplesmente o resultado de não responder com um 'sim' - existe uma maneira de dizer ao git que está tudo bem, eu sei o que estou fazendo e apenas continue?
Use seu sistema automatizado para implantar um
known_hosts
arquivo que tenha as chaves de host corretas. Você pode copiar as entradas de seus próprios known_hosts, por exemplo, usandossh-keygen -F gitlab.something.org
(isso funciona mesmo se o arquivo tiver sido hash) .O arquivo pode ser implantado em
~/.ssh/known_hosts
ou em/etc/ssh/ssh_known_hosts
.Observe que a verificação da chave de host não existe apenas para fazer você confirmar o que está fazendo; está lá para confirmar que 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 – a URL que você inseriu pode estar 100% correta o tempo todo, mas os pacotes podem ser redirecionados repentinamente para o servidor errado meses ou anos depois.