Случай по умолчанию
Если вы не настроили какую-либо указанную клавишу c для определенного хоста, вы используете клавишу по умолчанию s sh текущего пользователя, запустившего книгу воспроизведения. Если у вас есть несколько ключей (например, rsa, dsa, ecdsa, ed25519 .....), то используемый ключ будет зависеть от согласования с вашим целевым хостом sh, который вы можете проверить с помощью ssh -v <your_server>
. К сожалению, вы можете проверить это правильно только после того, как ключ был надет на цель и она аутентифицируется правильно.
Скорее всего, у вас есть только ключ rsa по умолчанию (созданный с параметрами по умолчанию ssh-keygen
), который это тот, который вы хотите использовать, поэтому он должен быть $HOME/.ssh/id_rsa
. В приведенном ниже примере я считаю само собой разумеющимся, что вы можете определить ключ по умолчанию, который хотите использовать. Вы можете улучшить другие задачи / команды, адаптированные к вашему конкретному случаю c, если вам также необходимо автоматическое обнаружение.
Specifi c ключ
Если вы настроили укажите ключ c, который будет использоваться (либо глобально, либо для каждого хоста / группы в вашем инвентаре), затем вы задали для переменной ansible_ssh_private_key_file
правильный путь. Затем эта переменная будет доступна для хостов, которые должны ее использовать.
Получение правильного ключа по умолчанию.
Следующая книга воспроизведения - пример того, как вы можете получить правильный ключ для всех серверов. в вашем инвентаре
---
- name: Show key for server
hosts: all
gather_facts: false
vars:
default_private_key_file: "{{ lookup('env', 'HOME') }}/.ssh/id_rsa"
server_private_key_file: "{{ ansible_ssh_private_key_file | default(default_private_key_file) }}"
tasks:
- name: show key for current server
debug:
var: server_private_key_file
- name: do something with that key from localhost
shell: 'echo "I will use {{ server_private_key_file }}"'
delegate_to: localhost