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

Posted

技术标签:

【中文标题】使用 ansible-vault 加密私钥连接到远程主机不起作用【英文标题】:connecting to a remote host with ansible-vault encrypted private key does not work 【发布时间】:2021-08-12 18:41:24 【问题描述】:

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

例如

tasks:

 - name: ssh to remote machine

   command: ssh -i key ansible@172.16.2.2

但是由于这将存储在 github 中,我使用 ansible-vault 加密了私有 ssh 密钥。 一旦我使用保管库解密密码(--ask-vault-pass)重新运行相同的命令,它将无法连接。好像加密/解密不返回相同的 ssh 密钥。 我在这里做错了什么?

【问题讨论】:

【参考方案1】:

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

Ansible SSH private key in source control?

您需要先将加密的 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

【讨论】:

以上是关于使用 ansible-vault 加密私钥连接到远程主机不起作用的主要内容,如果未能解决你的问题,请参考以下文章

使用 SSH 公钥/私钥连接到 sFTP 服务器。错误 Invalid private key file. 使用 SSH.NET

在命令“ansible-playbook”中加密用户私钥文件

如何在库存文件中使用ansible-vault加密密码?

使用带有Ansible-Vault的加密变量进行网络自动化

Ansible 安全 之加密主机清单

ansible 配置 vault 加密