我已经成功和轻松地设置了无密码的ssh身份validation(通过authorized_keys),通常在没有任何自定义的ssh相关configuration更改之前的服务器上。
现在我需要在一台CentOS服务器上进行设置,因为另一个人以前由于信息不全的pipe理员表示“安全问题”而禁用了这个function。 那个人已经不在了,我不知道如何做这个工作。
我在sshd_config中有这个:
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile %h/.ssh/authorized_keys UsePAM yes
还有其他的设置,但我认为他们没有区别。 任何build议,我应该检查,使这项工作?
我看到的最常见的原因是〜/ .ssh /授权的密钥的权限太宽松。 授权密钥文件必须只对所有者进行读/写( chmod 600 ~/.ssh/authorized_keys )。 目录本身也可以不允许任何写入( chmod 700 ~/.ssh )
您可以实际注释AuthorizedKeysFile ,因为它是默认的。
当前失败的服务器logging是什么? 你是否检查过.ssh和authorized_keys和/或禁用了StrictModes ?
如有必要,增加LogLevel和/或在分离模式下运行sshd 。
快速和肮脏的解决scheme:从它工作的服务器复制/ etc / ssh / sshd_config和/ etc / ssh / ssh_config。
你也可以从工作和非工作服务器上的文件中去掉所有注释(例如运行egrep -v '^#' /etc/ssh/sshd_config | sort | uniq并在两个服务器上比较结果。
还要看看目录和文件的权限,就像Alexbuild议的那样。