使用 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
如果我使用 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