Passwortloses SSH für Nicht-Root-Benutzer in Docker

Passwortloses SSH für Nicht-Root-Benutzer in Docker

Ich stoße auf ein merkwürdiges Problem, das ich noch nie zuvor gesehen habe, wenn ich passwortloses SSH zwischen Docker-Knoten für einen Nicht-Root-Benutzer einrichte. Um die Voraussetzungen zu schaffen, hier ist, was funktioniert hat: Für den Root-Benutzer auf Knoten 1:

ssh-keygen -t rsa ...
ssh-copy-id node2

Ich kann jetzt ohne Passwort von Knoten1 -> Knoten2 SSH verwenden.

Ich verwende einen anderen Benutzer (also Mark). Ich führe dieselben Schritte wie oben aus, erzeuge die Schlüssel und kopiere sie nach Knoten2 und erhalte immer noch die Eingabeaufforderung. Ich habe die Diagnose aktiviert (ssh -v node2) und Folgendes erhalten:

[mark@node1 ~]$ ssh -v node2
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to node2 [172.17.0.3] port 22.
debug1: Connection established.
debug1: identity file /root/.ssh/id_rsa type -1
debug1: identity file /root/.ssh/id_rsa-cert type -1
... more stuff
debug1: Next authentication method: publickey
debug1: Trying private key: /root/.ssh/id_rsa
debug1: Next authentication method: password
...

Ich finde es seltsam, außer in einem anderen Beitrag hier (https://stackoverflow.com/questions/18136389/using-ssh-keys-inside-docker-container) Einer der Poster machte den folgenden Kommentar: „Denken Sie daran, dass Docker mit sudo ausgeführt wird (es sei denn, Sie tun dies nicht). In diesem Fall verwenden Sie die Root-SSH-Schlüssel.“ Dies erregte meine Aufmerksamkeit, da ich vermute, dass dies der Kern meines Problems sein könnte.

Da ich dort keine Folgefrage posten konnte, dachte ich, ich formuliere die Frage hier neu. Ich kann in der Docker-Dokumentation keine spezifischen Details dazu finden, aber es scheint das Verhalten von passwortlosem SSH für Nicht-Root-Benutzer zu beeinflussen.

Ich bin für jede Klarstellung dankbar, die mir jemand geben kann.

Antwort1

Um Fehler zu beheben bzw. zu verstehen, was vor sich geht, lohnt es sich, zu versuchen ssh -i /home/mark/.ssh/id_rsa...(oder welchen Weg auch immer), zu prüfen, ob Sie Marks Schlüssel überhaupt verwenden können und ob es dabei funktioniert. Und versuchen Sie als Test, Roots Schlüssel umzubenennen, und sehen Sie, was dann passiert!

Überprüfen Sie außerdem (vergessen Sie -i), ob eine Datei ~/.ssh/config vorhanden ist und ob sie etwas enthält. Überprüfen Sie außerdem, ob IdentityFile ____in /etc/ssh_config eine Zeile vorhanden ist, die möglicherweise den Root-Schlüssel angibt.

verwandte Informationen