(转)Putty server refused our key的三种缘由和解决方法

原文html

上一篇博文介绍了使用Putty免密码登陆,我后面试了另外一台虚拟机,结果putty显示错误server refused our key(在linux下则表现为仍须要输入密码),搜索了下,不少人都遇到这个问题,大体有三种缘由:linux

一、.ssh文件夹权限错面试

.ssh 以及其父文件夹(root为/root,普通用户为Home目录)都应该设置为只有该用户可写(好比700)。bash

如下为缘由:服务器

ssh服务器的key方式登陆对权限要求严格。对于客户端: 私钥必须为600权限或者更严格权限(400), 一旦其余用户可读, 私钥就不起做用(如640), 表现为系统认为不存在私钥
对于服务器端: 要求必须公钥其余用户不可写, 一旦其余用户可写(如660), 就没法用key登陆, 表现为:Permission denied (publickey).
同时要求.ssh目录其余用户不可写,一旦其余用户可写(如770), 就没法使用key登陆, 表现为:Permission denied (publickey).ssh

 

二、SElinux致使spa

密钥文件不能经过SElinux认证,解决方法以下:unix

1
# restorecon -R -v /home #root用户为/root

我遇到的就是这种状况,找了很久还找到是这个缘由,由于是新装的虚拟机,SElinux还没关闭。rest

这篇博文详细得说明了缘由:http://www.toxingwang.com/linux-unix/linux-basic/846.htmlcode

 

三、sshd配置不正确

正确配置方法以下:

/etc/ssh/sshd_config 一、找到 #StrictModes yes 改为 StrictModes no (去掉注释后改为 no) 二、找到 #PubkeyAuthentication yes 改为 PubkeyAuthentication yes (去掉注释) 三、找到 #AuthorizedKeysFile .ssh/authorized_keys 改为 AuthorizedKeysFile .ssh/authorized_keys (去掉注释) 四、保存 五、/etc/rc.d/init.d/sshd reload 从新加载

相关文章
相关标签/搜索