Implementei a assinatura de cliente SSH CA em meus servidores. O Sshd está configurado em meus servidores com a seguinte diretiva:
TrustedUserCAKeys /etc/ssh/trusted-users-ca.pem
Modifiquei meu arquivo de configuração ssh local para que meu certificado também seja enviado quando me conectar aos meus servidores:
Host *.internal.headincloud.be
User centos
IdentityFile ~/.ssh/datacenter-hic-deploy
CertificateFile = ~/.ssh/datacenter-hic-deploy-cert.pub
Isso parece funcionar bem e consigo me conectar ao meu servidor sem a necessidade de implantar um arquivo authorized_keys.
No entanto, o Ansible não consegue conectar meus servidores:
TASK [Gathering Facts] *********************************************************************************************************************************************************************
fatal: [postgres-01]: UNREACHABLE! => {"changed": false, "msg": "SSH Error: data could not be sent to remote host \"192.168.90.40\". Make sure this host can be reached over ssh", "unreachable": true}
Como já mencionei, consigo me conectar via ssh muito bem.
Suspeito que o Ansible não esteja enviando o arquivo de certificado e é por isso que não consigo me conectar.
Eu tentei modificar meu ansible.cfg da seguinte forma:
ssh_args = -C -o ControlMaster=auto -o ControlPersist=60s -i ~/.ssh/datacenter-hic-deploy-cert.pub
ou
ssh_args = -C -o ControlMaster=auto -o ControlPersist=60s -i /Users/jeroenjacobs/.ssh/datacenter-hic-deploy-cert.pub
Nenhum desses funciona.
Não consigo encontrar uma maneira de dizer ao Ansible como fazer isso. Alguém uma ideia?