对authorized_key 文件的权限被拒绝

tra*_*rax 10 linux fedora ssh permissions

在 Fedora 16 上,
我将我的公钥复制到 /home/user/.ssh/authorized_keys 文件用户来自 ldap。

但是无法为该用户在没有密码的情况下通过 ssh 进行身份验证。

它适用于root。

sshd 上的 strace

[pid 24834] setgroups(1, [1100])        = 0
[pid 24834] getgroups(0, NULL)          = 1
[pid 24834] getgroups(1, [1100])        = 1
[pid 24834] setgroups(1, [1100])        = 0
[pid 24834] setresgid(-1, 1100, -1)     = 0
[pid 24834] setresuid(-1, 1040, -1)     = 0
[pid 24834] open("/home/user/.ssh/authorized_keys", O_RDONLY|O_NONBLOCK) = -1 EACCES (Permission denied)
Run Code Online (Sandbox Code Playgroud)
  • 我尝试使用用户帐户访问该文件:没问题。
  • 我尝试使用具有上述相同选项的小型 C 程序:没问题。
  • 我试过 777 对:没问题。

ls -l 在authorized_keys 文件上:

-rw-r--r--. 1 user user  784 19 nov.  16:24 authorized_keys
Run Code Online (Sandbox Code Playgroud)
  • 我试图禁用 StrictMode(并重新启动 sshd)

我与其他 Fedora 16 进行了比较:

  • 相同的操作系统
  • 相同的 sshd_config 文件
  • 上的相同权限~/~/.ssh/以及~/.ssh/authorized_keys

现在,我不知道该尝试解决什么问题。

fre*_*den 13

它可能是 SE Linux。如果文件的上下文不正确,运行它root应该修复。

restorecon -Rv /home/user/.ssh
Run Code Online (Sandbox Code Playgroud)

还要检查权限/home/user/.ssh是否完全开放。SSHD 对此非常讲究。

chmod 0700 /home/user/.ssh
Run Code Online (Sandbox Code Playgroud)


her*_*man 6

我遇到了类似的问题,就我而言,原因是 .ssh 目录和 .ssh/authorized_keys 文件的所有权错误。要解决这个问题,请以 root 身份在 /home/user 中:

chown user:user .ssh
chown user:user .ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)