使用 ansible-vault 加密的私钥连接到远程主机不起作用

connecting to a remote host with ansible-vault encrypted private key does not work

如果我使用 ansible 命令模块,我可以通过 ssh 连接到远程服务器

例如

tasks:

 - name: ssh to remote machine

   command: ssh -i key ansible@172.16.2.2

然而,由于这将存储在 github 中,我使用 ansible-vault 加密了 ssh 私钥。
一旦我使用保险库解密密码 (--ask-vault-pass) 重新运行相同的命令,它将无法连接。就好像 encryption/de-encryption 没有 return 一样的 ssh 密钥。 我在这里做错了什么?

如果其他人遇到同样的问题,我的传奇同事找到了解决方案。

您需要先将加密后的ssh私钥复制到另一个文件中进行解密,然后才能使用例如

- hosts: localhost
  gather_facts: false
  vars:
    source_key: key
    dest_key: key2
  tasks:
  - name: Install ssh key
    copy:
      src: "{{ source_key }}"
      dest: "{{ dest_key }}"
      mode: 0600

  - name: scp over the cert and key to remote server
    command: ssh -i key2 ec2-user@1.1.1.1