【大数据学习问题记录】ssh 免密码登录(设置后仍需输密码的原因及解决方法)

  • Post author:
  • Post category:其他


在这里插入图片描述

在学习大数据过程中遇到了一个小问题,

ssh 免密码登录~设置后仍需输密码

Namenode作为客户端,要实现无密码公钥认证,连接到datanode上时需要在namenode上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到datanode上;

当nameNode通过ssh连接到datanode时,datanode就会生成一个随机数并用namenode的公钥对随机数进行加密并发送给nameNode, namenode收到加密数值后,用私钥解密,并将解密数回传给datanode,datanode确认无误后就允许namenode进行连接了;

怎么操作呢?

  • 首先进入ssh目录
[hadoop@node1 ~]$ cd ~/.ssh
[hadoop@node1 .ssh]$ 

生成密钥

ssh-keygen -t rsa

在这里插入图片描述

在这里插入图片描述
链接本地~仍然需要密码

我内心是拒绝的

在这里插入图片描述
查找原因吧~

原来authorized_keys 文件的权限不够

原来权限

-rw-r--r-- 1 hadoop hadoop 563 Mar  2 22:47 authorized_keys
-rw------- 1 hadoop hadoop 2590 Mar  2 22:47 id_rsa
-rw-r--r-- 1 hadoop hadoop 563 Mar  2 22:47 id_rsa.pub

切换权限

-rw------- 1 hadoop hadoop 563 Mar  2 22:47 authorized_keys
-rw------- 1 hadoop hadoop 2590 Mar  2 22:47 id_rsa
-rw-r--r-- 1 hadoop hadoop 563 Mar  2 22:47 id_rsa.pub

链接本地ls

在这里插入图片描述

如果还是无法实现免密登录,那么就看一下 .ssh文件夹的 访问权限

chmod  700 ./ssh

然后将authorized_keys文件夹的权限 改为 600

chmod 600 authorized_keys

这是因为ssh的加密机制导致权限必须是上层权限(700)大于下层权限(600)

实际也就是文件的可访问权限



版权声明:本文为weixin_54061333原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。