ssh 无密码身份验证不起作用

ssh 无密码身份验证不起作用

抱歉再次发布共同话题。我读了几个类似的问题,但我仍然没有找到为什么它不起作用。那么让我描述一下我做了什么。我在与客户端/服务器不同的机器上生成了私钥/公钥 rsa 密钥文件。

然后我创建了目录并在客户端~/.ssh复制私钥,设置适当的所有者和文件权限。id_rsa在服务器端,我在要连接的用户下再次创建,以~/.ssh将公钥放入授权密钥中。

当我尝试 ssh 客户端托管时,它仍然需要密码,即使密钥是作为无密码生成的。

我是否忽略了一些明显的事情?

我还尝试在服务器端检查 ssh 日志以了解其需要 passwd 的详细信息 - 但 /var/log/auth 或 /var/log/ssh 不存在。它不是默认启用的还是我需要更改 sshd 的配置并重新启动服务。

我使用的是 CentOS 6。

要回答问题:服务器端的 ~/.ssh:

rw-------. hdfs hadoop  authorized_keys

rw-------. hdfs hadoop  config

rw-------. hdfs hadoop  id_rsa.pub

cnfig 包含:

Host *
StrictHostKeyChecking no

客户端的 ~/.ssh:

rw-------. hdfs hadoop authorized_keys

rw-------. hdfs hadoop config - the content is the same

rw-------. hdfs hadoop id_rsa

rw-r--r--. hdfs hadoop known_hosts 
  • 这可能是我的尝试产生的

答案1

在 CentOS 6 中,有一个阻止 ssh RSA 身份验证工作的错误如果 selinux 处于强制模式,则根据需要进行设置。

您可以禁用 selinux,或者尝试以下解决方法:

restorecon -R -v ~$USER/.ssh

答案2

这两行来自ssh centos 操作指南为我解决了这个问题:

$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys 

答案3

你能试试这个吗?将以下行添加到~/.ssh/config

Host remotehost
 IdentityFile ~/.ssh/your_private_key

相关内容