我最近弄乱了 .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– 这会修改父文件夹及其子对象的权限