我正尝试使用SSH连接到我自己的CentOS服务器; 我可以很好地连接密码; 我试图连接我的公钥,但服务器不会尝试公钥authentication。 我在CentOS维基上按照这个页面上的所有说明,并validation了以下几点:
我正在运行CentOS 6.0或更高版本
我的sshd_config有以下几点:
PermitRootLogin no PubkeyAuthentication Yes RSAAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
我在客户端的主目录中的.ssh /文件夹中创build了一个私钥
ssh-keygen生成)在服务器的主目录中的.ssh / authorized_keys文件中占用一行。 我在客户端和服务器上设置了以下权限模式:
chmod 700 .ssh chmod 600 .ssh/*
根据CentOS网站的这个问题报告 ,这是由SELinux中的一个上游“function”引起的。 如果SELinux正在执行,它将阻止服务器使用公钥authentication。 没有迹象表明这种行为在不久的将来会改变。 要查看这个问题是否适用于你,请inputsestatus并查看是否报告“当前模式”为enforcing 。
我知道两个解决方法。
setenforce 0立即更改策略,然后打开/etc/selinux/config并确保SELINUX=permissive 。 将文件恢复到正确的安全上下文:
restorecon -R -v ~$USER/.ssh