2016-05-17 3 views
0

Ich habe die folgende Aufgabe in meinem ansible playbook, die meinen ssh öffentlichen Schlüssel für einen entfernten Benutzer pranjal hinzufügt, der bereits von einer vorherigen Aufgabe erstellt wurde.Ansible `authorized_key` kopiert den Schlüssel zum entfernten Benutzer, aber funktioniert nicht, wenn ssh versucht

- authorized_key: 
    user: pranjal 
    key: "{{ lookup('file', 'pranjal.pub') }}" 

Wenn ich das Ansible Playbook ausführe, wird es erfolgreich ausgeführt. Wenn ich versuche, mich beim Server anzumelden: ssh [email protected]<server_ip>

bekomme ich einen Permission denied (publickey) Fehler.

Um sicher zu sein, dass ich mich bei einem anderen Benutzer bei einem Server eingeloggt habe und überprüft habe, ob der in /home/pranjal/.ssh/authorized_keys aufgelistete Schlüssel mit meinem lokalen öffentlichen Schlüssel übereinstimmt, den ich benutze, um mich einzuloggen.

Das Problem, das ich hier vermute, könnte ein Problem mit Berechtigungen sein und ich verstand die Lösung von einem verwandten question.

Aber wie ändern wir die Berechtigungen von authorized_key aus der Ansible-Task selbst? (Damit ich nicht separat in der Instanz müssen sich anmelden, ändern Berechtigungen von .ssh/authorized_keys)

Antwort

1
- file: path=/home/pranjal/.ssh state=directory owner=pranjal mode=0700 
- file: path=/home/pranjal/.ssh/authorized_keys state=file owner=pranjal mode=0600 

Sie auch überprüfen/verifizieren möchten/etc/ssh/sshd_config hat die folgenden:

PubkeyAuthentication yes 

Sie können weiter debuggen, indem ssh -vvv [email protected]<server_ip>

+0

PubkeyAuthentication war bereits vorhanden. Änderungen der Dateiberechtigungen waren das, was ich brauchte. Es funktioniert jetzt! Zweitens habe ich bemerkt, dass gerade das Ausführen von Playbook die neuen Datei-Tasks nicht auf der gleichen Instanz registriert, ich habe neue Instanz erstellt und die Datei-Tasks daran gearbeitet. (Nicht sicher, warum das passiert ist) –

Verwandte Themen