我已经在我的服务器上实现了 SSH CA 客户端签名。SSHd 在我的服务器上配置了以下指令:
TrustedUserCAKeys /etc/ssh/trusted-users-ca.pem
我修改了我的本地 ssh 配置文件,因此当我连接到我的服务器时,我的证书也被发送:
Host *.internal.headincloud.be
User centos
IdentityFile ~/.ssh/datacenter-hic-deploy
CertificateFile = ~/.ssh/datacenter-hic-deploy-cert.pub
这似乎工作得很好,我能够连接到我的服务器,而无需部署 authorized_keys 文件。
但是,Ansible 无法连接我的服务器:
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}
就像我已经提到的那样,我可以通过 ssh 进行连接。
我怀疑 Ansible 没有发送证书文件,这就是我无法连接的原因。
我尝试修改我的 ansible.cfg 如下:
ssh_args = -C -o ControlMaster=auto -o ControlPersist=60s -i ~/.ssh/datacenter-hic-deploy-cert.pub
或者
ssh_args = -C -o ControlMaster=auto -o ControlPersist=60s -i /Users/jeroenjacobs/.ssh/datacenter-hic-deploy-cert.pub
这些都不起作用。
我找不到告诉 Ansible 如何做到这一点的方法。任何人的想法?