---
|
|
- import_role: name='service'
|
|
vars:
|
|
service_name: 'ssh'
|
|
service_packages:
|
|
- 'openssh-server'
|
|
- 'openssh-sftp-server'
|
|
|
|
- name: 'upload user and server ca'
|
|
copy:
|
|
content: |
|
|
{% for ca in item.1 %}
|
|
{{ ca }}
|
|
{% endfor %}
|
|
dest: '/etc/ssh/{{ item.0 }}_ca.pub'
|
|
vars:
|
|
cas: '{{ item.1 }}'
|
|
notify: 'restart ssh'
|
|
loop:
|
|
- [ 'user', '{{ ssh_user_ca }}' ]
|
|
- [ 'server', '{{ ssh_server_ca }}' ]
|
|
tags:
|
|
- 'ssh_certs'
|
|
|
|
- name: 'generate and sign host certificate'
|
|
import_role: name='ca_cert'
|
|
vars:
|
|
ca_cert_common_name: '{{ host_fqdn }}'
|
|
ca_cert_proto: 'ssh'
|
|
ca_cert_ssh_ca_path: '/etc/ssh/server_ca.pub'
|
|
ca_cert_ssh_key_path: '/etc/ssh/ssh_host_ed25519_key'
|
|
tags:
|
|
- 'ssh_certs'
|
|
|
|
- name: 'add host certificate to sshd config'
|
|
lineinfile:
|
|
line: 'HostCertificate /etc/ssh/ssh_host_ed25519_key-cert.pub'
|
|
dest: '/etc/ssh/sshd_config'
|
|
regexp: '^HostCertificate *'
|
|
notify: 'restart ssh'
|
|
tags:
|
|
- 'ssh_certs'
|
|
|
|
- name: 'add user ca to sshd config'
|
|
lineinfile:
|
|
line: 'TrustedUserCAKeys /etc/ssh/user_ca.pub'
|
|
dest: '/etc/ssh/sshd_config'
|
|
regexp: '^TrustedUserCAKeys *'
|
|
notify: 'restart ssh'
|
|
tags:
|
|
- 'ssh_certs'
|
|
|
|
- name: 'permit root login only with certificate'
|
|
lineinfile:
|
|
line: 'PermitRootLogin without-password'
|
|
dest: '/etc/ssh/sshd_config'
|
|
regexp: '^PermitRootLogin *'
|
|
notify: 'restart ssh'
|
|
|
|
- meta: 'flush_handlers'
|
|
|
|
- name: 'waiting for ssh on {{ inventory_hostname }} to start'
|
|
wait_for:
|
|
host: '{{ hostvars | ip_from_inventory(inventory_hostname) }}'
|
|
port: 22
|
|
timeout: 30
|
|
delegate_to: 'localhost'
|
|
delegate_facts: true
|