--- # Tasks for SSH Key role - name: Ensure SSH Directory exists file: path: "/home/{{ user }}/.ssh" state: directory group: "{{ user }}" owner: "{{ user }}" mode: 0700 - name: Check if id_ed25519 key exists stat: path: "/home/{{ user }}/.ssh/id_ed25519" register: key_status - name: No need to generate new id_ed25519 key when: key_status.stat.exists == true debug: msg: No need to generate new rsa key as it already exists. - name: Generate new rsa key when: key_status.stat.exists == false shell: ssh-keygen -t ed25519 -q -f /home/git/.ssh/id_ed25519 -C "Gitea Host Key" -N "" - name: Ensure id_ed25519 key permissions file: path: "/home/{{ user }}/.ssh/id_ed25519" group: "{{ user }}" owner: "{{ user }}" mode: 0600 - name: Ensure id_ed25519 public key permissions file: path: "/home/{{ user }}/.ssh/id_ed25519.pub" group: "{{ user }}" owner: "{{ user }}" mode: 0644 - name: Add key to authorized_files when: key_status.stat.exists == false copy: remote_src: yes src: "/home/{{ user }}/.ssh/id_ed25519.pub" dest: "/home/{{ user }}/.ssh/authorized_keys" owner: "{{ user }}" group: "{{ user }}" mode: 0644