使用Ansible生成密钥

时间:2016-08-17 14:05:58

标签: ansible ansible-playbook ssh-keys ssh-keygen

我有一个问题,是否可以创建SSH密钥而不在本地存储,而不是我可以将其保存为变量。是否有任何选项,以便我可以安全地拥有我的密钥而不保存本地。

由于

1 个答案:

答案 0 :(得分:1)

有点hacky,但回答了这个问题:

---
- hosts: localhost
  tasks:
    - expect:
        command: ssh-keygen -b 2048 -t rsa -f /dev/stdout -q
        responses:
            Overwrite: y
            Enter: "\n"
      failed_when: "'BEGIN RSA PRIVATE KEY' not in priv_key_raw.stdout"
      changed_when: false
      register: priv_key_raw

    - set_fact:
        priv_key: "{{ (priv_key_raw.stdout_lines[3:])[:-1] }}"

    - shell: "/bin/echo -e \"{{ priv_key | join('\\n') }}\" | ssh-keygen -y -f /dev/stdin"
      register: pub_key_raw
      changed_when: false

    - set_fact:
        pub_key: "{{ pub_key_raw.stdout }}"

    - debug: var=priv_key
    - debug: var=pub_key