linx ,centos7 ,hadoop集群登录时免密登录注意点以及步骤
SSH 免密登陆
1,在配置ssh免密登陆之前,将master克隆3份slaves出来,然后验证其ip是否和上面所述一致,并使用Xshell连接,这样我们可以得到额外的三台机器,且都安装好Java的。
注意:在使用克隆时,不太推荐使用链接克隆。
使用ifconfig查看ip地址后,如下,下面将按照这个ip地址进行配置。
Master IP:192.168.136.20
Slave1 IP:192.168.136.21
Slave2 IP:192.168.136.22
2,在master节点上更改hosts文件如下。
vim /etc/hosts
编辑,在后面添加以下行。
Master IP:192.168.136.20
Slave1 IP:192.168.136.21
Slave2 IP:192.168.136.22
其他的slave节点也应该如此。
3,使用以下命令,分别更改4台机器的主机名,以master节点为例。
hostnamectl set-hostname master
其他节点是slave1-3,更改完成后在Xshell中重启会话就可以发现主机名已经改变啦。
4,要使master和3台slave免密登陆,需先在本地机器使用ssh-keygen一个公私钥对。
ssh-keygen -t rsa # 生成公私钥对
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory ‘/root/.ssh’.
Enter passphrase (empty for no passphrase): # 不用输入
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa. # 存放位置
Your public key has been saved in /root/.ssh/id_rsa.pub. # 公钥
The key fingerprint is:
SHA256:vGAdZV8QBkGYgbyAj4OkQ9GrYEEiilX5QLmL97CcFeg root@master
The key’s randomart image is:
±–[RSA 2048]----+
|+o++o+ …=o+o. |
|==…= o oo o . |
|…o.* … . |
|=.o.+ +o . |
|o…+ .o.S |
| … E… . |
| o * . |
| + . |
| |
±—[SHA256]-----+
其他台机器也是这样生成。
注意:
-
检查SSH配置: 如果你在尝试使用SSH密钥进行认证时遇到权限问题,确保
~/.ssh
目录和其中的文件权限设置正确。目录的权限应该是700(只有所有者可以读写执行):bash复制
chmod 700 ~/.ssh
2.更改文件权限: 如果文件权限不正确,你可以使用chmod
命令来更改它。通常,SSH密钥文件的权限应该设置为600。只有所有者可以读写)。
bash复制
chmod 600 ~/.ssh/id_rsa.pub
传送文件
scp ~/.ssh/id_rsa.pub root@master:/root/.ssh/id_rsa.pub.1连接时 yes 即可 其他类似
这个提示说明你的系统第一次与 master 主机(IP 地址为 192.168.136.20)建立 SSH 连接时,无法验证对方主机的身份。SSH 客户端会询问你是否信任远程主机,并提供了主机密钥的指纹信息。在继续之前,你需要确认以下事项:确认远程主机的IP地址和主机名:确保你正在尝试连接到正确的主机,并且IP地址没有被篡改。确认指纹信息:如果你之前连接过 master 主机,你可以检查本地 ~/.ssh/known_hosts 文件中存储的指纹信息是否与提示中的一致。如果这是第一次连接,或者你不确定,你可以手动验证远程主机的身份,或者联系系统管理员获取正确的指纹信息。如果你确认远程主机是安全的,可以输入 yes 来继续连接:bash yes 然后,SCP 命令会继续执行。一旦你接受了远程主机的密钥,它的指纹信息就会被保存在本地的 ~/.ssh/known_hosts 文件中,以后再次连接时就不会再提示。请注意,出于安全考虑,在公共网络或不信任的网络上操作时,一定要谨慎处理主机密钥的验证。只有在你完全信任远程主机的情况下,才应该接受其密钥。如果你不确定,最好先停止操作并进行进一步的验证。
[root@slave2 /]# scp ~/.ssh/id_rsa.pub root@master:/root/.ssh/id_rsa.pub.2
The authenticity of host 'master (192.168.136.20)' can't be established.
ECDSA key fingerprint is SHA256:NdQEEoZT0SUeg64qBFLoJ0FdJz+YBfdQVERQaE+xwzk.
ECDSA key fingerprint is MD5:82:10:49:fd:34:7c:53:77:93:67:99:b7:53:e7:e1:bc.
Are you sure you want to continue connecting (yes/no)?yes
5,将slaves生成的所有id_rsa.pub
公钥文件通过scp
上传到master的/root/.ssh/
目录下。
scp id_rsa.pub root@master:/root/.ssh/id_rsa.pub.1 # slave2 对应于.2
scp id_rsa.pub root@master:/root/.ssh/id_rsa.pub.2 # 依此类推
# master上也要这样处理,否则就不能从slaves登陆到master,如下
scp id_rsa.pub root@master:/root/.ssh/
6,在master节点上,将所有的公钥文件写入authorized_keys
文件中
[root@master /]# echo ~/.ssh/authorized_keys //查看文件所在位置
/root/.ssh/authorized_keys
cat /root/.ssh/id_rsa.pub* >> /root/.ssh/authorized_keys
rm -rf /root/.ssh/id_rsa.pub.* # 删除
7,分发known_hosts
文件给slaves机器。
[root@master /]# echo ~/.ssh/known_hosts //查看文件所在路径
/root/.ssh/known_hosts
scp /root/.ssh/known_hosts root@slave1:/root/.ssh/ # 其他同
scp /root/.ssh/known_hosts root@slave2:/root/.ssh/
8,分发authorized_keys
文件给slaves机器
scp /root/.ssh/authorized_keys root@slave1:/root/.ssh/
scp /root/.ssh/authorized_keys root@slave2:/root/.ssh/
9,分发known_hosts
文件给slaves机器。
scp /root/.ssh/known_hosts root@slave1:/root/.ssh/ # 其他同
scp /root/.ssh/known_hosts root@slave2:/root/.ssh/
这样就可以实现免密登陆啦,查看known_hosts
文件如下。
master,192.168.136.20 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBG4pcNSq4jQmGY3JRlYoU/IssJ8gfjTZhCcqBmLlviFismkti27xJHbd0s1rcaO/MX4ORK6eUdGr2ALE/r36otk=slave1,192.168.236.21 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBG4pcNSq4jQmGY3JRlYoU/IssJ8gfjTZhCcqBmLlviFismkti27xJHbd0s1rcaO/MX4ORK6eUdGr2ALE/r36otk=slave2,192.168.136.22 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBG4pcNSq4jQmGY3JRlYoU/IssJ8gfjTZhCcqBmLlviFismkti27xJHbd0s1rcaO/MX4ORK6eUdGr2ALE/r36otk=