私は、私たちのサーバーのネットワーク上で名前付きのsshアクセスを作成するために、安全な(バージョン2.1.2.0)を使用しようとしています。私は、ユーザーのセットを作成し、そこからユーザモジュール公開鍵を読み取ることができない許可されたキーモジュール
- user:
name: "{{ item }}"
shell: /bin/bash
group: usergroup
generate_ssh_key: yes
ssh_key_comment: "ansible-generated for {{ item }}"
with_items: "{{ list_of_usernames }}"
と/秘密鍵と公開鍵のペアを作成していたジャンプボックスからansible実行私は、それぞれにauthorized_usersファイルに公開鍵を越えコピーしたいですリモートサーバー。私は、フェッチおよびリモートサーバー上authorized_keyとして、ユーザの生成した公開鍵をコピーするauthorized_key_moduleを使用しています:
- authorized_key:
user: "{{ item }}"
state: present
key: "{{ lookup('file', '/home/{{ item }}/.ssh/id_rsa.pub') }}"
with_items:
- "{{ list_of_usernames }}"
私は何を見つけたんだけど、パブのファイルにアクセスすることができないとして、ルックアップが失敗するということですユーザーの.sshフォルダ内にあります。しかし、私がルートユーザー(私にとっては選択肢ではありません)を実行することができれば、それは楽しく実行されます。
fatal: [<ipAddress>]: FAILED! => {"failed": true, "msg": "{{ lookup('file', '/home/testuser/.ssh/id_rsa.pub') }}: the file_name '/home/testuser/.ssh/id_rsa.pub' does not exist, or is not readable"}
root権限で実行する以外の方法がありますか?
編集:申し訳ありませんが、私は私が実行していることを言及するのを忘れていたのになる:はい
編集#2:以下はそれは、このインスタンスでは、もちろん、私が実行しようとしているものの凝縮脚本ですLLはlocalhostにauthorized_keyを追加しますが、私が直面していますエラーを示しています。
---
- hosts: all
become: yes
vars:
active_users: ['user1','user2']
tasks:
- group:
name: "users"
- user:
name: "{{ item }}"
shell: /bin/bash
group: users
generate_ssh_key: yes
with_items: "{{ active_users }}"
- authorized_key:
user: "{{ item }}"
state: present
key: "{{ lookup('file', '/home/{{ item }}/.ssh/id_rsa.pub') }}"
become: yes
become_user: "{{ item }}"
with_items:
- "{{ active_users }}"
しかし、root権限を持たずに新しいユーザーを作成するにはどうすればよいですか? –
申し訳ありませんが、私は質問を書いていたときにこれを書いたと思っていましたが、私は本当に使っています:はい – Aeladru
そしてなぜあなたは次の仕事のために「なる:はい」できないのですか? –