ssh 密码较少的身份验证不起作用

jak*_*sky 4 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
Run Code Online (Sandbox Code Playgroud)

cnfig 包含:

Host *
StrictHostKeyChecking no
Run Code Online (Sandbox Code Playgroud)

~/.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 
Run Code Online (Sandbox Code Playgroud)
  • 这个可能是我的尝试产生的

Tim*_*edy 6

在 CentOS 6 中,如果 selinux 处于强制模式,则有一个错误会阻止 ssh RSA 身份验证正常工作

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

restorecon -R -v ~$USER/.ssh
Run Code Online (Sandbox Code Playgroud)