2015-04-13 13 views
6

Ho generato la chiave ssh e la copia sul server remoto. Quando provo a ssh su quel server, tutto funziona correttamente:autorizzazione ssh ansible negata

ssh [email protected]_address 

L'utente non è una radice. Se provo a ssh tiro ansible:

ansible-playbook -i hosts playbook.yml 

con playbook ansible:

--- 
- hosts: web 
    remote_user: user 
    tasks: 
    - name: test connection 
     ping: 

e file hosts:

[web] 
192.168.0.103 

ho ottenuto l'errore:

... 
Permission denied (publickey,password) 

Qual è il problema?

+3

quando si dice "tutto funziona bene", chiede la password o no? Riesegui con '-vvvv' e pubblica l'output .. – Kashyap

risposta

9

Ansible utilizza una chiave diversa rispetto a quello che si sta utilizzando per connettersi a quella macchina "Web".

È esplicitamente possibile configurare ansible di utilizzare una chiave privata specifica

private_key_file=/path/to/key_rsa 

come indicato nel the docs Assicurarsi che si autorizza quella chiave che utilizza ansible, per l'utente remoto in macchina remota con ssh-copy-id -i /path/to/key_rsa.pub [email protected]_ip_address

+0

Ho anche avuto questo problema e usare ssh-copy-id per ogni host ha fatto il trucco – MadPink

+0

La configurazione su /etc/ansible/ansible.cfg è uno ma non l'unico posto dove è possibile definire chiavi ssh alternative. Quando ho affrontato questo problema, la causa era nei file di inventario, in cui sono state definite le chiavi individuali da utilizzare per ciascun host. –

1

Nel mio caso ho avuto un errore simile durante l'esecuzione di un playbook ansible quando l'host ha cambiato le impronte digitali. Ho trovato questo, cercando di stabilire una connessione SSH dalla riga di comando. Quindi, dopo aver eseguito ssh-keygen -f "/root/.ssh/known_hosts" -R my_ip questo problema è stato risolto.