Раньше работал ansible с доступом по паролю и рутом. Всё было хорошо, но пришлось запретить доступ ssh по паролю и доступ по ssh руту.
Создал юзера для ansible, сделал ему ключ, скопировал на сервер в authorized_keys. Запускаю команду ansible -m ping freebsd-d
– не работает:
> ansible -m ping freebsd-d [0]
freebsd-d | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: no such identity: /home/ansible/.ssh/id_rsa: Permission denied\r\nansible@192.168.1.122: Permission denied (publickey).",
"unreachable": true
}
ansible -m ping all -vvv
: https://paste.ee/p/bmpcU
Разумеется перед этим везде в файлах заменил root на имя юзера: ansible.
hosts:
[freebsd]
freebsd-d ansible_ssh_host=192.168.1.122
[all:vars]
from_ansible_python_path=/usr/local/bin/python3.9
[freebsd:vars]
ansible_user='ansible'
ansible_ssh_private_key_file='/home/ansible/.ssh/id_rsa'
ansible.cfg:
[defaults]
inventory = hosts
remote_user = ansible
roles = ./roles
host_key_cheking = False
private_key_file = /home/ansible/.ssh/id_rsa
#private_key_file = /root/.ssh/id_rsa
> ls -l /usr/bin/python [130]
lrwxr-xr-x 1 root wheel 24 25 нояб. 18:40 /usr/bin/python -> /usr/local/bin/python3.9
Сам юзер ansible может заходить по ключу через ssh.