含泪总结,Hadoop集群云服务器间ssh免密登陆设置问题。

本篇主要总结我在配置云服务器之间免密登陆出现的问题

我贴出来的方法不包治百病,不过大家可以一试

背景:因为最近在跟着视频学做大数据数仓项目,视频教程里老师用的电脑配置挺好,32G内存,搭建三个服务器组成的集群能应付的过来,我就惨了,本子只有8G内存,四核四线程的处理器,照视频那个搭指定是废了。本来我想买三台云服务器着(穷屌丝一个,只能买的起1核2g的),好在我的好舍友金城武手里有资源,甩手给我配了三台4核8G的服务器,让我做项目临时用用。在这里插入图片描述

一路跟着视频走,到SSH免密登陆的时候卡壳了。遇到的问题如下:
1.以前只在本地搭过虚拟机,开始的时候我自己搭了个虚拟机,金城武给我配了两个云服务器。

这里我要说的是:要区分好公网和内网,自己虚拟机搭的服务器通常情况下只是内网ip,
在自己机器上通信没有问题,但是一旦需要通过公网访问,就需要配置公网ip了,
具体配置方法请自行百度。
举个简单的例子:就像座机的内线和外线,你不接通外线,就算把电话按碎外线电话也打不通没开外线的座机。

(1)、虚拟机服务器A可以ping通云服务器B、C,但是B、C却ping不通A
在这里插入图片描述
(2)、scp 命令 及 SSH 等命令各种报错,无响应
这里我列举一个最常见的报错
在这里插入图片描述
出现这种错误后,网上的经验贴一般都是修改 /etc/ssh/sshd_config 这个文件里的一些参数,我也按照上面的修改着,结果并没卵用。

在修改了PasswordAuthentication 参数后
还出现了无法远程登录的错误
Disconnected:No supported authentication methods available

解决办法:
在这里插入图片描述
2、因为我家是联通宽带,分配的动态ip没法申请公网ip,所以我的虚拟机服务器没办法使用了。干脆又找金城武,让他又配了一台云服务器。
在配ssh免密登陆的时候还是有问题。
(1)、/etc/hosts 文件中的ip地址设置问题。

需要注意的是:
--1.在master主机中:master主机的地址设置为内网ip,其他slave从机设置为公网ip
--2.在其他slave从机中:master和slave 都要设置为公网ip地址

3.设置好hosts文件,生成公钥和秘钥后,ssh-copy-id 和scp命令报错
先给大家推荐个查询linux命令的网址
链接: https://man.linuxde.net/

这里需要注意 ssh-copy-id 命令和scp 命令参数的问题了
ssh-copy-id 完整语法:
ssh-copy-id [-i [identity_file]] [user@]machine
第一个选参:
-i:指定公钥文件
第二个选参:
[用户名@]主机名

第一个选参我没配,我在第二个选参那里出错了。因为网上很多经验贴都是直接用的 ssh-copy-id 主机名 这种形式,但我这么写不行,还是报
在这里插入图片描述
这个错误。需要写成ssh-copy-id 用户名@主机名的形式才能成功
同样的,scp和ssh命令也是如此,需要指定清楚,哪个用户哪台机器

之后一天我发现了个问题…我为了区分方便把用户建成了hduser01,hduser02,hduser03,用户组名时是一样的,因为用户名不同,所以在ssh登陆的时候,所以才需要指定用户名和机器名,如果把各个机器的用户名和组名都建成一样的就直接机器名就行了。。。。。
果然得按着教程走,水平太菜的情况下自有发挥容易出问题。

折腾了一天,就因为参数没加对…蓝瘦 有问题的小伙伴可以在下面留言,欢迎咱们一起讨论。

猜你喜欢

转载自blog.csdn.net/zhuyin6553/article/details/106865800