Нужный ключ — tf-runner@dcn03srv465, отпечаток SHA256:OUIpyIA(запасной вариант — ansible, SHA256:xWNL0F9BIF8). Найдите приватную половину:
sudo ls -la /home/tf-runner/.ssh/
sudo bash -c 'for k in /home/tf-runner/.ssh/* /root/.ssh/*; do
case "$k" in *.pub|*known_hosts*|*config|*authorized_keys) continue;; esac
fp=$(ssh-keygen -y -f "$k" 2>/dev/null | ssh-keygen -lf - 2>/dev/null)
[ -n "$fp" ] && echo "$k -> $fp"
done'
Если в выводе найдётся строка с OUIpyIAM6— это он. Тогда:
echo 'ANSIBLE_SSH_KEY=<путь_к_найденному_ключу>' | sudo tee -a /etc/terraform-web.env
sudo systemctl restart terraform-admin
Вполне вероятно, что это окажется id_rsa_tfweb — один ключ и для GitLab, и для доступа на VM. Если совпадений нет ни на одном пути, значит приватной части этого ключа на 465 просто нет, и прогоны по ключу невозможны без
её получения.
Что можно проверить прямо сейчас, не дожидаясь ключа
Пароль работает независимо от ключей, sshpass установлен. Скопируйте исправленный файл и перезапустите — для парольного входа это обязательно, иначе ping снова пойдёт от tf-runner вместо citadmin:
sudo cp /mnt/usb/usb-tools-tab/opt/terraform-web/backend/ansible_runner.py /opt/terraform-web/backend/
sudo systemctl restart terraform-admin
Затем во вкладке заполните «SSH-пользователь» = citadmin и «SSH-пароль», цель 10.28.240.132, нажмите «Проверить связь». Это подтвердит, что весь путь (сборка команды, лок, лог, SSE, история, письмо) работает, и отделит
вопрос аутентификации от всего остального.
Отдельно стоит проверить на самой VM, что публичный ключ вообще там лежит:
sudo cat /home/citadmin/.ssh/authorized_keys | ssh-keygen -lf -
Если в списке нет OUIpyIAM… — VM создавалась до добавления этого ключа в роль либо не через портал, и ключевой доступ туда не настроен в принципе. Тогда рабочих вариантов два: разложить ключ прогоном роли
base_configure_system (по паролю, один раз) — после этого ключевой доступ заработает, либо оставить парольный вход для таких машин.