6.Hadoop中的ssh无秘钥登录配置

对于需要远程管理其它机器,一般使用远程桌面或者telnet。linux一般只能是telnet。但是telnet的缺点是通信不加密,存在不安全因素,只适合内网访问。为解决这个问题,推出了通信加密通信协议,即SSH(Secure Shell)。使用非对称加密方式,传输内容使用rsa或者dsa加密,可以避免网络窃听。hadoop的进程之间同信使用ssh方式,需要每次都要输入密码。为了实现自动化操作,需要配置ssh免密码登陆方式。

1.配置SSH

(1)基本语法:
ssh 另一台电脑的ip地址

<!---ssh连接时出现Host key verification failed的解决方法--->
[admin@hadoop102 opt] $ ssh 192.168.1.103
The authenticity of host '192.168.1.103 (192.168.1.103)' can't be established.
RSA key fingerprint is cf:1e:de:d7:d0:4c:2d:98:60:b4:fd:ae:b1:2d:ad:06.
Are you sure you want to continue connecting (yes/no)? 
Host key verification failed.

解决方案如下:直接输入yes

2.生成公钥和私钥

[admin@hadoop102 .ssh]$ ssh-keygen -t rsa 

然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)

3.将公钥拷贝到要免密登录的目标机器上

[admin@hadoop102 .ssh]$ ssh-copy-id hadoop103
[admin@hadoop102 .ssh]$ ssh-copy-id hadoop104

解释:
.ssh文件夹下(~/.ssh)的文件功能解释
(1)known_hosts :记录ssh访问过计算机的公钥(public key)
(2)id_rsa :生成的私钥
(3)id_rsa.pub :生成的公钥
(4)authorized_keys :存放授权过得无密登录服务器公钥

4.配置ssh免密码登录(三个节点hadoop102(主节点)、hadoop103、hadoop104)

(1) 主节点配置

1.首先到用户主目录(cd ~),ls -a查看文件,其中一个为“.ssh”,该文件价是存放密钥的。待会我们生成的密钥都会放到这个文件夹中。
2.现在执行命令生成密钥: ssh-keygen -t rsa -P “” (使用rsa加密方式生成密钥)回车后,会提示三次输入信息,我们直接回车即可。
3.进入文件夹cd .ssh (进入文件夹后可以执行ls -a 查看文件)
4.将生成的公钥id_rsa.pub 内容追加到authorized_keys(执行命令:cat id_rsa.pub >> authorized_keys)

(2)从节点配置
1.以同样的方式生成秘钥(ssh-keygen -t rsa -P “” ),然后hadoop103和hadoop104将生成的id_rsa.pub公钥追加到hadoop102的authorized_keys中)

2.在hadoop103中执行命令

scp id_rsa.pub hadoop102:/root/.ssh/id_rsa.pub.hadoop103 ,

在hadoop104中执行命令

scp id_rsa.pub hadoop102:/root/.ssh/id_rsa.pub.hadoop104 

3.进入hadoop102执行命令:

cat id_rsa.pub.hadoop103 >> authorized_keys 
cat id_rsa.pub.hadoop103 >> authorized_keys 

4.最后将生成的包含三个节点的秘钥的authorized_keys 复制到hadoop103和hadoop104的.ssh目录下

 scp authorized_keys hadoop103:/root/.ssh/
 scp authorized_keys hadoop104:/root/.ssh/

参考文章

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容