authorized_key 文件的权限被拒绝

authorized_key 文件的权限被拒绝

在 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)
  • 我尝试使用用户帐户访问该文件:没有问题。
  • 我尝试用一​​个具有上述相同选项的小型 C 程序进行尝试:没有问题。
  • 我尝试了 777 正确:没有问题。

ls -l在authorized_keys文件上:

-rw-r--r--. 1 user user  784 19 nov.  16:24 authorized_keys
  • 我尝试禁用 StrictMode(并重新启动 sshd)

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

  • 相同的操作系统
  • 相同的 sshd_config 文件
  • 相同的权限~/~/.ssh/并且~/.ssh/authorized_keys

现在,我不知道该如何尝试解决这个问题。

答案1

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

restorecon -Rv /home/user/.ssh

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

chmod 0700 /home/user/.ssh

答案2

我遇到了类似的问题,在我的案例中,原因是 .ssh 目录和 .ssh/authorized_keys 文件的所有权错误。要修复此问题,请以 root 身份在 /home/user 中执行:

chown user:user .ssh
chown user:user .ssh/authorized_keys

答案3

你的authorized_keys文件应该具有权限rw-------。运行:

chmod 600 ~/.ssh/authorized_keys

需要注意的是,客户id_rsa端上的私钥(通常)应该具有相同的权限。

答案4

进一步了解 fredden 的回答(我没有足够的声誉来评论),我在 RHEL 7 上遇到了类似的问题,LogLevel DEBUG3在 sshd_config 中设置(并重新启动 sshd 服务)后,我在 /var/log/secure 中得到了以下内容:

datetime servername sshd[11180]: debug1: Could not open authorized keys '/authorized_keys/authorized_keys': Permission denied

尽管文件夹和文件具有正确的权限(分别为 700 和 600)。

如果您怀疑可能是 SElinux(我的是 SElinux),您可以通过查看 /var/log/audit/audit.log 并搜索文件名(在本例中为 authorized_keys )来检查。如果这是罪魁祸首,您将找到一个 type=AVC 的拒绝条目。

我只是将 SELinux 设置为宽容模式,这可能不是最好的方法,但时间很短,它解决了这个问题。我没有尝试,restorecon -Rv /home/user/.ssh因为直到后来我才意识到这是相关的(一开始没有意识到是 SELinux 导致了问题)。

相关内容