2010-11-26 22:04:58 +0000 2010-11-26 22:04:58 +0000
411
411

Berechtigungen für den privaten Schlüssel im Ordner .ssh?

Ich habe meine Berechtigungen in meinem Ordner .ssh geändert, und wenn ich jetzt eine Software benutze, die meinen privaten Schlüssel verwendet, muss ich jedes Mal mein Passwort eingeben. Wie sollten meine Berechtigungen in der Datei id_rsa lauten, damit ich nicht jedes Mal ein Passwort eingeben muss, wenn ich eine Anwendung benutze, die diese Datei verwendet?

Derzeit sind meine Berechtigungen auf:

-rw-------@ 1 Jody staff 114 Nov 4 23:29 config
-rw------- 1 Jody staff 1743 Oct 21 2009 id_rsa
-rw-------@ 1 Jody staff 397 Oct 21 2009 id_rsa.pub 
-rw-------@ 1 Jody staff 3855 Sep 13 22:35 known_hosts

Antworten (4)

93
93
93
2015-06-09 20:39:45 +0000

Ich habe ewig damit gekämpft und schließlich herausgefunden, was gebraucht wird. Ersetzen Sie $USER überall durch den SSH-Benutzernamen, mit dem Sie sich auf dem Server anmelden möchten. Wenn Sie versuchen, sich als root anzumelden, müssten Sie /root/.ssh etc. verwenden, anstelle von /home/root/.ssh, wie es für Nicht-Root-Benutzer üblich ist.

  • Das Home-Verzeichnis auf dem Server sollte nicht von anderen beschreibbar sein: chmod go-w /home/$USER
  • Der SSH-Ordner auf dem Server benötigt 700 Berechtigungen: chmod 700 /home/$USER/.ssh
  • Die Datei Authorized_keys benötigt 644 Berechtigungen: chmod 644 /home/$USER/.ssh/authorized_keys
  • Stellen Sie sicher, dass user die Dateien/Ordner besitzt und nicht root: chown user:user authorized_keys und chown user:user /home/$USER/.ssh
  • Legen Sie den generierten öffentlichen Schlüssel (von ssh-keygen) in der Datei authorized_keys des Benutzers auf dem Server ab
  • Stellen Sie sicher, dass das Home-Verzeichnis des Benutzers so eingestellt ist, wie Sie es erwarten, und dass es den richtigen Ordner .ssh enthält, den Sie modifiziert haben. Falls nicht, verwenden Sie usermod -d /home/$USER $USER, um das Problem zu beheben
  • Starten Sie schließlich ssh neu: service ssh restart
  • Stellen Sie dann sicher, dass der Client den öffentlichen Schlüssel und die Dateien mit dem privaten Schlüssel im Ordner .ssh des lokalen Benutzers hat und melden Sie sich an: ssh user@host.com
37
37
37
2013-01-03 03:50:21 +0000

Stellen Sie außerdem sicher, dass Ihr Home-Verzeichnis nicht von anderen Benutzern beschreibbar ist.

chmod g-w,o-w ~

6
6
6
2010-11-26 22:07:13 +0000

Genehmigungen sollten damit nichts zu tun haben. Ihr privater Schlüssel ist mit dem Passwort verschlüsselt, so dass Sie es eingeben müssen, damit der private Schlüssel entschlüsselt und verwendet werden kann.

Sie könnten in Erwägung ziehen, einen ssh-Agenten laufen zu lassen, der entschlüsselte Schlüssel zwischenspeichern kann und sie an Anwendungen liefert, die sie benötigen.

4
4
4
2014-04-17 20:20:44 +0000

Felipe hat Recht - das Verzeichnis, das Ihr .ssh-Verzeichnis enthält, darf weder von der Gruppe noch von anderen beschreibbar sein. Daher ist chmod go-w ~ der nächste logische Versuch, wenn Sie nach dem Ausführen von ssh-keygen -t rsa; cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys beim ssh'ing immer noch nach einem Passwort gefragt werden, vorausgesetzt, Sie weisen keine Passphrase im Befehl ssh-keygen zu, und Ihr .ssh-Verzeichnis befindet sich in Ihrem Heimatverzeichnis.