需求 :
主机 txynebo1 , txynebo2 , txynebo3
配置ssh免密码登陆 。
1 .首先更改hosts文件 将三个主机的ip与hostname对应(这边是三个云服务器。所以将对应的公网ip与 hostname对应 ,这里十分抱歉,hostname是不能加下划线 _ 的。不然后面搭建hadoop集群会报错 。我这里没有注意。所以今天改了一下文本。但是图中可能还是txy_nebo?)
txynebo1 139.199.172.112
txynebo2 123.207.241.42
txynebo3 118.89.61.19
2.更改 hostname
vi /etc/hostname
vi /etc/sysconfig/network(我这里是没有配置的)
3 .为了在配置过程中操作更加方便我们将hadoop配置到sudoers文件中
配置sudoers
切换到 root用户 执行以下命令
chmod u+w /etc/sudoers
vi /etc/sudoers
然后添加一行
4 .然后回到当前hadoop目录下开始生成公匙(三台主机都执行如下命令,以txynebo1 为例 ):
[hadoop@txynebo1~] mkdir .ssh
[hadoop@txynebo1 ~] ssh-keygen -t rsa //执行该命令之后一路回车 。
[hadoop@txynebo1 ~] cd .ssh
[hadoop@txynebo1 .ssh] ls
id_rsa id_rsa.pub
[hadoop@txynebo1 .ssh] cat id_rsa.pub >> authorized_keys
[hadoop@txynebo1 t .ssh] ls
authorized_keys id_rsa id_rsa.pub
[hadoop@txynebo1 .ssh] ll
total 12
-rw-rw-r– 1 hadoop hadoop 404 Mar 22 12:17 authorized_keys
-rw——- 1 hadoop hadoop 1679 Mar 22 12:16 id_rsa
-rw-r–r– 1 hadoop hadoop 404 Mar 22 12:16 id_rsa.pub
[hadoop@txynebo1 .ssh] cd ..
[hadoop@txynebo1 ~] chmod 700 .ssh
[hadoop@txynebo1 ~] chmod 600 .ssh/*
然后ssh txynebo1
第一次输入yes
第二次 就不用输入了 。
p:上述步骤务必注意顺序。给了权限之后再ssh
执行到这一步。三台主机都生成了公匙。并且都追加到了各自节点的authorized_keys 文件中 。
5 . 下一步 将公钥追加到某一个节点的authorized_key文件。然后分发到所有节点 。这里我们都追加到txynebo1这个节点 。
可以在其它节点使用 命令: ssh-copy-id username@hostname
如: ssh-copy-id hadoop@txynebo2
也可以使用
cat ~/.ssh/id_rsa.pub | ssh hadoop@txynebo1 ‘cat >> ~/.ssh/authorized_keys’
然后通过scp命令将txynebo1主机上的authorized_keys 文件分发到每个节点 。
scp -r authorized_keys hadoop@txynebo2:~/.ssh/
scp -r authorized_keys hadoop@txynebo3:~/.ssh/
最后通过ssh登陆其他主机,配置成功