ansible ssh connections com two factor auth

1

Estou configurando ansible para gerenciar um farm inteiro de servidores. Minha abordagem é a seguinte:

Permite que um usuário se conecte a todos os servidores que protegem suas conexões com uma chave pesada RSA, senha protegida e senha de usuário.

Para automatizar o máximo possível o processo, eu gostaria de passar a senha RSA e a senha do usuário em um arquivo de cofre ou em uma string criptografada.

Quando estou testando (passando as senhas manualmente) com apenas um ping para um servidor de teste, se eu configurar no cliente ambos os métodos de autenticação (publickey + senha do usuário), será solicitada senha RSA, mas nenhuma senha e obviamente a execução do manual falha.

Se eu apenas configurar a senha do usuário como método de autenticação, o manual será executado normalmente.

Se eu apenas configurar a chave RSA com a autenticação de senha, o trabalho não terminará, essa é a saída que tive na minha tela por pelo menos 30 minutos (tempo para pesquisa, café, etc.)

PLAY [all] ******************************************************************************************************************************************************************

TASK [Gathering Facts] ******************************************************************************************************************************************************
Enter passphrase for key '/home/users/<user_name>/.ssh/id_rsa': 
ok: [<test_server_ip_address>]

TASK [include vars] *********************************************************************************************************************************************************
ok: [<test_server_ip_address>]

TASK [test connection] ******************************************************************************************************************************************************

E mais alguma coisa.

O manual que estou tentando executar é este

---
- hosts: all
  tasks:
    - name: test connection
      ping:

E o comando para executar o playbok no seguinte:

ansible-playbook -i ansible_hosts/test_hosts.yml playbooks/ping.yml

O conteúdo de test_host.yml :

all:
  hosts:
    <test_server_ip_address>

Minha pergunta é:

É possível configurar a autenticação de fator duplo para ansible? Se sim, alguém pode me redirecionar na direção certa, por favor?

    
por Abel 20.12.2017 / 10:24

1 resposta

2

Eu duvido que você possa usar a frase secreta da chave ssh do Ansible Vault, mas o fluxo de trabalho geral de 2 fatores é o seguinte:

No lado do servidor, ative o Autentificação de dois fatores com

AuthenticationMethods "publickey,password"

em sshd_config .

No lado do cliente (Ansible):

  1. Configure o ssh-agent, adicione a chave protegida por senha ao agente quando a conexão for necessária
  2. Defina ansible_password no Cofre Ansible para cada host
  3. Run playbook
por 20.12.2017 / 10:53