CentOS忽略了我的公钥


8

我正在尝试使用SSH连接到我自己的CentOS服务器;我可以用密码很好地连接;我正在尝试使用我的公共密钥进行连接,但是服务器未尝试进行公共密钥身份验证。我已按照CentOS Wiki中此页面上的所有说明进行操作,并验证了以下内容:

  • 我正在运行CentOS 6.0或更高版本

  • 我的sshd_config具有以下内容:

    PermitRootLogin no
    PubkeyAuthentication Yes
    RSAAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
    
  • 我已经在客户端主目录的.ssh /文件夹中创建了一个私钥。

  • 公钥的完整文本(由生成ssh-keygen)在服务器主目录中的.ssh / authorized_keys文件中占一行。
  • 我在客户端和服务器上都设置了以下权限模式:

    chmod 700 .ssh
    chmod 600 .ssh/*
    

Answers:


13

根据CentOS网站上的此问题报告,这是由SELinux的上游“功能”引起的。如果SELinux正在执行,它将阻止服务器使用pubkey身份验证。没有迹象表明这种行为会在不久的将来改变。要查看此问题是否适用于您,请键入sestatus并查看其是否将“当前模式”报告为enforcing

我知道两种解决方法。

  • 您可以将SELinux设置为许可模式。键入setenforce 0以立即更改策略,然后打开/etc/selinux/config并确保SELINUX=permissive
  • 将文件还原到正确的安全上下文:

    restorecon -R -v ~$USER/.ssh
    

这确实是问题吗?
安迪·辛

是的,尽管后来我的系统管理员告诉我SELinux最初不应该运行。
ILikeFood
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.