2016-08-17 3 views
1

私は変数として保存する代わりに、ローカルに保存せずにSSH鍵を作成することが可能かどうかという質問があります。ローカルに保存せずに鍵を安全に持てるようにするオプションはありますか。鍵生成を使用して

おかげ

+0

を? –

+0

あなたは何を達成しようとしていますか?新しいキーを即座に生成していますか、または単に静的キーを格納しようとしていますか?それらをターゲットマシンに保管していますか? –

+0

主なスコープは、キーをローカルに保存するのを避ける必要があります。私は自分のオブジェクトストレージに格納されているものを使用しています – hain

答えて

1

それは少しハックですが、質問に答える:あなたはちょうどあなたがそれをどのように使用するか、変数でそれを持っていますが、保存されていない場合は

--- 
- 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 
+0

ちょっと感謝Suvorov.But私たちはpemファイルの生成にec2_keyモジュールを使用し、 "/ dev /"のようなファイルパスで言及してssh keygenを使うのではなく、AnecessのPythonの暗号ライブラリを使って公開鍵と秘密鍵の必要な鍵を抽出できるかどうか。鍵を一時的に保管することなく安全に取り扱うことができます。可能ですか? – hain

+0

@hain私は確かにこれを行うための多くのハッキーな方法がありますが、実際にこれを本番環境で必要とする場合は、いくつかのlibsヘルプ、多分(pycryptodome)[https:// github。 com/Legrandin/pycryptodome] –

+0

もう一度Suvorovに感謝します。私たちが安全な方法でec2_keyモジュールを使用していれば、生成されたpemファイルのみが公開鍵になるという意味です。 – hain

関連する問題