2016-08-17 5 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. co.kr/Legrandin/pycryptodome] –

+0

다시 한 번 Suvorov에게 감사를드립니다. 우리가 ec2_key 모듈을 사용할 수있는 수단으로 사용한다면 생성 된 pem 파일 만 제공하므로 공개 키가 아닌 개인 키를 제공한다는 의미입니까? – hain