Warum muss ich sudo verwenden, damit die SSH-Public-Key-Authentifizierung funktioniert?

Warum muss ich sudo verwenden, damit die SSH-Public-Key-Authentifizierung funktioniert?

Ich kann von meinem Computer (OS X) aus keine SSH-Verbindung zu meinem Raspberry Pi (Ubuntu Mate) herstellen, es sei denn, ich verwende sudo. Zur Authentifizierung verwende ich ein öffentliches/privates Schlüsselpaar.

Der entsprechende öffentliche Schlüssel wird der Datei authorized_users auf dem Raspberry Pi hinzugefügt.

Die Berechtigungen für mein .ssh-Verzeichnis sind 700. Die Berechtigungen für meine Schlüsseldateien sind 600.

Dies ist die Ausgabe von ssh mit dem Flag -v:

debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/username/.ssh/id_rsa
debug1: Authentications that can continue: publickey 
debug1: Trying private key: /Users/username/.ssh/id_dsa
debug1: No more authentication methods to try. Permission denied (publickey).

ls:

-rw------- 1 username staff 3326 May 18 23:24 id_rsa 
-rw-r--r-- 1 username staff 752 May 18 23:24 id_rsa.pub 

.ssh:

drwx------  11 username   staff    374 May 19 21:49 .ssh

Antwort1

Sie haben wahrscheinlich den SSH-Schlüssel von root freigegeben, möglicherweise indem sudoSie dies getan haben ssh-copy-id. Stellen Sie sicher, usernamedass der öffentliche Schlüssel von auch im authorized_keysZiel vorhanden ist.

Antwort2

Hier scheint es eine Diskrepanz zu geben. Sie sagen immer authorized_users; andere sagen authorized_keys. Der öffentliche Schlüssel für einen Benutzer wird in das Home-Verzeichnis des Benutzers in einer Datei namens .ssh/authorized_keys und nicht .ssh/authorized_users geschrieben. Da ssh für root funktioniert, sollten Sie sich das Verzeichnis für ~root/.ssh ansehen und das Verzeichnis für ~user_name/.ssh genauso aussehen lassen – außer natürlich, dass die Schlüssel dann die für diesen Benutzer sind, nicht die für root.

verwandte Informationen