ansible은 SSH 키를 여러 사용자의 홈 디렉터리에 복사합니다.

ansible은 SSH 키를 여러 사용자의 홈 디렉터리에 복사합니다.

내 ansible_host에 SSH 키 쌍이 있고 이를 대상 호스트의 여러 사용자에 대한 인증된 키에 복사하고 싶습니다.

with-item 구성을 시도하고 있지만 .pub 키가 유효하지 않은 키가 아니라고 불평하므로 그렇게 하려고 합니다.

- authorized_key:
    user: "{{ item.user }}"
    key: "{{ item.key }}"
  with_items:
        - { user: "user1", key: "~/.ssh/id_rsa.pub" }
        - { user: "user2", key: "~/.ssh/id_rsa.pub" }

실수:"msg": "invalid key specified: ~/.ssh/id_rsa.pub"}

답변1

이는 키를 키 필드에 문자열로 삽입하기 때문입니다.

당신은 사용해야합니다파일 검색 플러그인.

귀하의 경우 다음과 같아야 합니다(테스트되지 않았으며 대괄호에 대해 완전히 확신하지 못함).

- authorized_key:
    user: "{{ item.user }}"
    key: "{{ item.key }}"
  with_items:
        - { user: "user1", key: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}" }
        - { user: "user2", key: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}" }

답변2

여러 사용자에게 키를 복사해야 하는 경우 다음을 수행할 수 있습니다.

- authorized_key:
    user: "{{ item.user }}"
    key: "{{ lookup('file', lookup('env','HOME') + '/.ssh/id_rsa.pub') }}"
  with_items:
        - { user: "user1" }
        - { user: "user2" }

관련 정보