Существует ли переменная, указывающая на файл закрытого ключа? - PullRequest
1 голос
/ 01 февраля 2020

Я хочу сбросить ключ publi c, который соответствует закрытому ключу, который я сейчас использую. Идея состоит в том, чтобы сослаться на любую переменную, указывающую на этот закрытый ключ, создать из него ключ publi c и поместить его на виртуальную машину с virt-copy-in.

.

1 Ответ

1 голос
/ 01 февраля 2020

Случай по умолчанию

Если вы не настроили какую-либо указанную клавишу 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...