mgmt/pve/ssh-debug-fix.yml

101 lines
2.9 KiB
YAML

---
- name: SSH Connection Debug and Fix
hosts: pve_cluster
gather_facts: yes
tasks:
- name: Check SSH service status
systemd:
name: ssh
state: started
register: ssh_status
- name: Display SSH service status
debug:
msg: "SSH Service: {{ ssh_status.status.ActiveState }}"
- name: Check SSH configuration
command: sshd -T
register: sshd_config
ignore_errors: yes
- name: Display SSH configuration (key settings)
debug:
msg: |
PasswordAuthentication: {{ sshd_config.stdout | regex_search('passwordauthentication (yes|no)') }}
PubkeyAuthentication: {{ sshd_config.stdout | regex_search('pubkeyauthentication (yes|no)') }}
PermitRootLogin: {{ sshd_config.stdout | regex_search('permitrootlogin (yes|no|prohibit-password)') }}
MaxAuthTries: {{ sshd_config.stdout | regex_search('maxauthtries [0-9]+') }}
- name: Check if authorized_keys file exists
stat:
path: /root/.ssh/authorized_keys
register: authorized_keys_stat
- name: Display authorized_keys status
debug:
msg: "Authorized keys file exists: {{ authorized_keys_stat.stat.exists }}"
- name: Check authorized_keys permissions
stat:
path: /root/.ssh/authorized_keys
register: authorized_keys_perm
when: authorized_keys_stat.stat.exists
- name: Display authorized_keys permissions
debug:
msg: "Authorized keys permissions: {{ authorized_keys_perm.stat.mode }}"
when: authorized_keys_stat.stat.exists
- name: Fix authorized_keys permissions
file:
path: /root/.ssh/authorized_keys
mode: '0600'
owner: root
group: root
when: authorized_keys_stat.stat.exists
- name: Fix .ssh directory permissions
file:
path: /root/.ssh
mode: '0700'
owner: root
group: root
- name: Check SSH log for recent errors
command: journalctl -u ssh -n 20 --no-pager
register: ssh_logs
ignore_errors: yes
- name: Display recent SSH logs
debug:
msg: "{{ ssh_logs.stdout_lines }}"
- name: Test SSH connection locally
command: ssh -o ConnectTimeout=5 -o StrictHostKeyChecking=no root@localhost "echo 'SSH test successful'"
register: ssh_local_test
ignore_errors: yes
- name: Display SSH local test result
debug:
msg: "SSH local test: {{ 'SUCCESS' if ssh_local_test.rc == 0 else 'FAILED' }}"
- name: Check SSH agent
command: ssh-add -l
register: ssh_agent_keys
ignore_errors: yes
- name: Display SSH agent keys
debug:
msg: "SSH agent keys: {{ ssh_agent_keys.stdout_lines }}"
when: ssh_agent_keys.rc == 0
- name: Restart SSH service
systemd:
name: ssh
state: restarted
register: ssh_restart
- name: Display SSH restart result
debug:
msg: "SSH service restarted: {{ ssh_restart.changed }}"