Files
ansible-collection-hardening/molecule/os_hardening/verify_tasks/ssh_auth_locked.yml
T
Martin Schurz 38791f0199 Update supported OS versions to current Fedora (42/43/44) and Ubuntu (22.04/24.04/26.04) (#946)
* Update testing and remove old, unsupported OS versions

Signed-off-by: Martin Schurz <[email protected]>

* Update Arch OS

Signed-off-by: Martin Schurz <[email protected]>

* Fix SuSE login.defs issues

Signed-off-by: Martin Schurz <[email protected]>

* Debug ...

Signed-off-by: Martin Schurz <[email protected]>

* Fix SuSE stuff

Signed-off-by: Martin Schurz <[email protected]>

* Fix SuSE stuff

Signed-off-by: Martin Schurz <[email protected]>

* Update OS Support

Signed-off-by: Martin Schurz <[email protected]>

* Use Ansible mysql module

Signed-off-by: Martin Schurz <[email protected]>

* Update OS Support

Signed-off-by: Martin Schurz <[email protected]>

* Use existing Fedora images

Signed-off-by: Martin Schurz <[email protected]>

* Fix VM tests

Signed-off-by: Martin Schurz <[email protected]>

* fix last errors

Signed-off-by: Martin Schurz <[email protected]>

* Final fixes

Signed-off-by: Martin Schurz <[email protected]>

---------

Signed-off-by: Martin Schurz <[email protected]>
2026-05-12 15:25:57 +02:00

91 lines
2.4 KiB
YAML

---
- name: Install tools
package:
name: "{{ item }}"
state: present
ignore_errors: true
loop:
- sshpass
- openssh
- openssh-clients
- openssh-server
- name: Allow password Login for sshd
ansible.builtin.lineinfile:
path: /etc/ssh/sshd_config
search_string: PasswordAuthentication no
line: PasswordAuthentication yes
when:
- ansible_facts.distribution == "Amazon"
- name: Start sshd service
ansible.builtin.service:
name: "{{ item }}"
state: started
ignore_errors: true
loop:
- sshd
- ssh
- name: Set password for test
ansible.builtin.set_fact:
test_pw: myTest!pw
- name: Create locked_user
user:
name: locked_user
password: "{{ test_pw | password_hash('sha512') }}"
- name: Create ssh-client-keypair
community.crypto.openssh_keypair:
path: /root/locked_user_id
type: ed25519
state: present
register: generated_key
- name: Add ssh-public-key to locked_user
ansible.posix.authorized_key:
user: locked_user
key: "{{ generated_key.public_key }}"
state: present
- name: Check successful login with password
ansible.builtin.shell:
cmd: sshpass -p {{ test_pw }} ssh -o StrictHostKeyChecking=no locked_user@localhost echo "success"
- name: Check successful login with ssh key
ansible.builtin.shell:
cmd: ssh -i /root/locked_user_id -o StrictHostKeyChecking=no locked_user@localhost echo "success"
- name: Set password change date for locked_user
ansible.builtin.shell:
cmd: chage -d 2020-01-01 locked_user
- name: Check unsuccessful login with password
ansible.builtin.shell:
cmd: sshpass -p {{ test_pw }} ssh -o StrictHostKeyChecking=no locked_user@localhost echo "success"
register: output
ignore_errors: true
- name: Assert check unsuccessful login
ansible.builtin.assert:
that:
- output.rc | int == 1
- "'WARNING: Your password has expired.' in output.stderr"
- "'success' not in output.stdout"
when:
- ansible_facts.os_family != "Suse"
- name: Assert check unsuccessful login
ansible.builtin.assert:
that:
- output.rc | int == 5
- "'(password expired)' in output.stderr"
- output.stdout | length == 0
when:
- ansible_facts.os_family == "Suse"
- name: Check successful login with ssh key
ansible.builtin.shell:
cmd: ssh -i /root/locked_user_id -o StrictHostKeyChecking=no locked_user@localhost echo "success"