SSH Key Permissions Chmod Einstellungen?


63

Ich muss SSH auf meinem Computer verwenden, um auf meine Website und deren Datenbanken zuzugreifen (Einrichten eines symbolischen Links, aber ich schweife ab).

Folgendes Problem: Ich gebe den Befehl ein: ssh-keygen -t dsa
Um ein öffentliches / privates DSA-Schlüsselpaar zu generieren. Ich speichere es in der Standardeinstellung ( /home/user/.ssh/id_dsa): Und gib die Passphrase zweimal ein

dann bekomme ich das zurück:

WARNUNG: NICHT GESCHÜTZTE PRIVATE SCHLÜSSELDATEI!
Die Berechtigungen 0755 für '/home/etc.ssh/id_rsa' sind zu offen. Es wird empfohlen, dass Ihre privaten Schlüsseldateien NICHT für andere zugänglich sind. Dieser private Schlüssel wird ignoriert. schlechte Berechtigungen: Schlüssel ignorieren: [dann der DATEIPFAD in VAR / LIB / SOMEWHERE]

Um das jetzt zu umgehen, habe ich dann versucht-

sudo chmod 600 ~/.ssh/id_rsa         sudo chmod 600 ~/.ssh/id_rsa.pub    

Aber kurz nachdem mein Computer eingefroren war und sich wieder anmeldete, gab es eine could not find .ICEauthority error. Ich habe dieses Problem umgangen und die SSH-Dateien gelöscht, möchte aber die richtigen Berechtigungen verwenden, um diese Probleme in Zukunft zu vermeiden. Wie sollte ich ICEauthority einrichten oder wo sollte ich die SSH-Schlüssel speichern - oder welche Berechtigungen sollten sie haben? Wäre die Verwendung einer virtuellen Maschine am besten?

Das ist alles sehr neu und ich befinde mich in einer sehr steilen Lernkurve, daher wird jede Hilfe geschätzt.


Es wurde leider nur ein Schlüsselsatz generiert!
Crissixpaul

Berechtigungen für .ssh dir sind ebenso wichtig wie Schlüsselberechtigungen. Es sollte 600 sein , es zu beheben laufen: chmod -R 600 ~/.ssh.
KWubbufetowicz

4
Tatsächlich müssen die .ssh-Verzeichnisberechtigungen 700 und nicht 600 sein. Die Ausführungsberechtigung ermöglicht Ihnen den Zugriff auf das, was sich in diesem Verzeichnis befindet. Also sollten die richtigen Befehle lauten chmod 700 $HOME/.sshundchmod 600 $HOME/.ssh/id_rsa
MelBurslan 25.01.16

Der Fehler bei .ICEauthority bezieht sich nicht auf die angezeigten chmodBefehle. Entweder ist es ein Zufall, oder Sie haben einige andere Befehle ausgeführt, die Sie uns nicht zeigen.
Gilles 'SO - hör auf böse zu sein'

Antworten:


92

chmod 600 ~/.ssh/id_rsa; chmod 600 ~/.ssh/id_rsa.pub(dh chmod u=rw,go= ~/.ssh/id_rsa ~/.ssh/id_rsa.pub) sind korrekt.

chmod 644 ~/.ssh/id_rsa.pub(dh chmod a=r,u+w ~/.ssh/id_rsa.pub) wäre auch richtig, aber chmod 644 ~/.ssh/id_rsa(dh chmod a=r,u+w ~/.ssh/id_rsa) wäre nicht. Ihr öffentlicher Schlüssel kann öffentlich sein. Wichtig ist, dass Ihr privater Schlüssel privat ist.

Auch Ihr .sshVerzeichnis selbst darf nur von Ihnen beschreibbar sein: chmod 700 ~/.sshoder chmod u=rwx,go= ~/.ssh. Sie müssen natürlich in der Lage sein, es zu lesen und auf Dateien darin zuzugreifen (Ausführungsberechtigung). Es ist nicht direkt schädlich, wenn andere es lesen können, aber es ist auch nicht nützlich.

Das brauchst du nicht sudo. Verwenden Sie sudodiese Option nicht , um Ihre eigenen Dateien zu manipulieren, da dies nur zu Fehlern führen kann.

Der Fehler in .ICEauthorityBezug auf hat nichts mit den chmodangezeigten Befehlen zu tun. Entweder ist es ein Zufall, oder Sie haben einige andere Befehle ausgeführt, die Sie uns nicht zeigen.


Was müssen die Berechtigungen für die ~ / .ssh / known_hosts sein?
Nikc

0

Ich möchte zu den obigen Antworten hinzufügen, dass mein Ausgangsverzeichnis ( ~/) auch die Berechtigungen haben musste 755, unabhängig von den Berechtigungen von ~/.sshund den darin enthaltenen Dateien. (Dies war auf einem Synology NAS und gilt möglicherweise nicht für alle Linux-Betriebssysteme.)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.