Sie möchten, dass sowohl der Schlüsselordner als auch der Schlüssel selbst nur für den Benutzer lesbar sind. Ich mache immer chmod 700 ~/.ssh; chmod 600 ~/.ssh/*
selbst, wo Sie diese Verzeichnisse natürlich an Ihren eigenen Anwendungsfall anpassen möchten.
Alternativ können Sie chown -R $USERNAME ~/.ssh; chmod -R go-rwx ~/.ssh
Die chown
kann erforderlich sein, wenn die Schlüsseldatei beispielsweise als root heruntergeladen oder installiert wurde.
Machen Sie niemals chmod 777
auf Ihrem privaten Schlüssel! Es macht es (möglicherweise) öffentlich lesbar, und das wollen Sie nicht. Außerdem weigert sich SSH in einigen Fällen sogar, eine Datei mit zu freizügigen Berechtigungen zu verwenden, sodass Sie sich damit selbst ins Knie schießen könnten.
Wenn die Berechtigungen der Datei nicht das Problem sind, kann es mehrere andere Ursachen geben. Möglicherweise haben Sie für eines der Verzeichnisse ~/.ssh
falsche Berechtigungen festgelegt oder ~/.ssh/keyfolder
(technisch auch auf ~
aber dann wäre dies nicht das einzige Symptom). Verwenden Sie ls -adl
um diese Verzeichnisse zu inspizieren. Sie sollten rwx
haben für dich, aber ---
sowohl für die Gruppe als auch für die Welt.
Ein weiteres Problem könnte sein (aber das ist ziemlich selten), dass der ssh-add
binär hat den setuid
Bit gesetzt, was dazu führt, dass es als ein anderer Benutzer ausgeführt wird und daher kein Recht hat, Ihren privaten Schlüssel zu lesen. Verwenden Sie ls -lh $(which ssh-add)
um dies zu überprüfen.