Řešení 1:
Adresář bude vyžadovat, abyste mohli zadat spouštěcí bit. Nevím, co jste testovali, ale nemůžete zadejte adresář bez prováděcího bitu nebo v něm čtěte soubory:
$ mkdir foo
$ echo "baz" > foo/bar
$ chmod 660 foo
$ cd foo
bash: cd: foo: Permission denied
$ cat foo/bar
cat: foo/bar: Permission denied
Tedy pokud váš proces má nastavenou schopnost CAP_DAC_OVERRIDE POSIX (jako má root), která vám umožňuje vstupovat do adresářů bez sady spustitelných bitů, iirc.
V zásadě byste se měli snažit udržovat váš adresář .ssh na 700 a vše v něm na 600, jen abyste byli v bezpečí. Manuálová stránka ssh poskytuje pro jednotlivé soubory pokyny pro požadovaná vlastnictví a režimy oprávnění pro soubory v ~/.ssh.
Řešení 2:
Adresář vyžaduje oprávnění ke spuštění, aby cd
do toho. Toto je očekávané chování.
Řešení 3:
Abyste mohli ls nebo cd do adresáře, potřebujete oprávnění ke spuštění. I když je nemáte, nemůžete skutečně prohlížet obsah a vidět oprávnění souborů uvnitř, takže s největší pravděpodobností jsou oprávnění k souborům sama o sobě nesprávná, pokud je nemůžete zařadit.
Oprávnění k adresáři 700 a oprávnění k souborům 644 jsou pro mě naprosto v pořádku.