前提:
1.客户端生成了id_rsa.pub和id_rsa
2.服务端在.ssh/authorized_keys也加入了客户端的id_res.pub
3./etc/ssh/sshd_config开启了:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
但在客户端执行ssh依然报错:
Permission denied (publickey)
在这个页面不小心看到了原因:
http://serverfault.com/questions/230771/ssh-configuration-publickeys-permission-denied-publickey-password-error
又是TM的SELinux惹的祸,关闭SELinux解决问题:
暂时关闭(重启后恢复):
setenforce 0
永久关闭(需要重启):
vi /etc/selinux/config
SELINUX=disabled
注:ssh可同时支持publickey和password两种授权方式,publickey默认不开启,需要配置为yes。
如果客户端不存在.ssh/id_rsa,则使用password授权;存在则使用publickey授权;如果publickey授权失败,依然会继续使用password授权。
本文转自 boy461205160 51CTO博客,原文链接:http://blog.51cto.com/461205160/1769171