Lösung 1:
Das Verzeichnis wird erfordern das gesetzte Ausführungsbit, damit Sie es eingeben können. Ich weiß nicht, was Sie getestet haben, aber Sie können es nicht Geben Sie ein Verzeichnis ohne das Ausführungsbit ein oder lesen Sie Dateien darin:
$ mkdir foo
$ echo "baz" > foo/bar
$ chmod 660 foo
$ cd foo
bash: cd: foo: Permission denied
$ cat foo/bar
cat: foo/bar: Permission denied
Das heißt, es sei denn Ihr Prozess hat die CAP_DAC_OVERRIDE POSIX-Fähigkeit gesetzt (wie Root), die es Ihnen erlaubt, Verzeichnisse ohne das gesetzte ausführbare Bit, iirc, zu betreten.
Grundsätzlich sollten Sie versuchen, Ihr .ssh-Verzeichnis auf 700 und alles darin auf 600 zu halten, nur um sicher zu gehen. Die ssh-Manpage gibt pro Datei Anweisungen zu den erforderlichen Eigentümern und Berechtigungsmodi für Dateien in ~/.ssh.
Lösung 2:
Ein Verzeichnis erfordert eine Ausführungsberechtigung, um cd
auszuführen hinein. Dies ist das erwartete Verhalten.
Lösung 3:
Um ls oder cd in ein Verzeichnis zu kopieren, benötigen Sie Ausführungsberechtigungen. Während Sie sie nicht haben, können Sie den Inhalt nicht wirklich überprüfen und die Berechtigungen der darin enthaltenen Dateien nicht sehen, also sind höchstwahrscheinlich die Dateiberechtigungen selbst falsch, wenn Sie sie nicht kategorisieren können.
Verzeichnisberechtigungen von 700 und Dateiberechtigungen von 644 sind für mich vollkommen in Ordnung.