尽管在 .ssh 目录中将权限设置为 666,但所有者的权限仍被拒绝

尽管在 .ssh 目录中将权限设置为 666,但所有者的权限仍被拒绝

我最近弄乱了 .ssh 目录。我认为做了一些权限更改,现在它不再允许我访问它。我可以以 root 用户身份访问它(sudo -i),但不能以 user1 身份访问它

当我列出或进入 .ssh 时,尽管可以显示文件,但我还是收到权限被拒绝的提示

ls: cannot access /home/user1/.ssh/amazon.pem: Permission denied
ls: cannot access /home/user1/.ssh/id_rsa: Permission denied
ls: cannot access /home/user1/.ssh/known_hosts: Permission denied
ls: cannot access /home/user1/.ssh/id_rsa.pub: Permission denied
total 0
-????????? ? ? ? ?            ? amazon.pem
-????????? ? ? ? ?            ? id_rsa
-????????? ? ? ? ?            ? id_rsa.pub
-????????? ? ? ? ?            ? known_hosts

以 root 身份登录并执行 ls 可得到以下结果

# ls -l /home/user1/ -a |grep ssh
drw-rw-rw-  2 user1 user1 4096 Aug 27 15:45 .ssh

甚至里面的文件都是.ssh,都归user1所有:user1和chm

-rw-rw-rw- 1 user1 user1 1692 Aug 27 15:45 amazon.pem
-rw-rw-rw- 1 user1 user1 1675 Aug 25 20:01 id_rsa

答案1

Steeldriver 是对的。在目录中,您还需要x访问标志才能列出其中的文件。

使用修复目录chmod 700 ~/.ssh应该可以帮助您进入这个(正确的)状态:

$ ls -ld ~/.ssh
drwx------. 2 user user 4096 Aug 26 10:37 /home/user/.ssh

您还应该使用chmod 600 ~/.ssh/id_rsa并修复您的密钥chmod 644 ~/.ssh/*.pub以获得:

$ ls -l ~/.ssh/
-rw-------. 1 user user  1766 Mar  7  2014 id_rsa
-rw-r--r--. 1 user user   415 Mar  7  2014 id_rsa.pub

答案2

当您运行命令时ls -l在任何目录上,第一列是权限列,其解释如下:

1-------------2 3 4-------5 6 7-------8 9 10

(类型) - - (用户)-----(团体)- - (其他的)

类型:如果‘-’,则它是一个文件。如果‘d’它是一个目录。

权限:读取:4,写入:2,执行:1

因此,对于读取,写入和执行,您的权限将是7在用户组中。

您可以使用

sudo chmod 7 6 6 file_name 

或者

sudo chmod -R u+x /home/somesh/.ssh 

-R– 这会修改父文件夹及其子对象的权限

相关内容