install ssh and config
更新日期:
ssh是什么?
我们不是百度百科的搬运工,拿目前看来SSH是用来解决多台机器之间的互信问题。
例如有2台机器,它们之间可以通过 口令/密码 来登录。那么久需要维护密码这样的东西,如果hadoop集群有1000台,而且出于安全考虑3个月换一次随机密码。那么这将是无法估量的维护成本。
这样ssh的 公钥/私钥 就显的十分灵巧了。
ssh之间的过程
这里是 阮一峰的blog里面有介绍ssh,文章不长,还可以。
ssh配置
1.先看自己是否已经有ssh,如果用下面命令发现有sshd的进程,那么就可以略过,步骤2安装。
1 | ps -ef | grep sshd |
2.安装sshd(拿ubuntu举例)
1 | sudo apt-get install openssh-server |
3.在每台需要跳转,及被跳转的机器上执行下面命令,一路回车(如果要安装hadoop,则每台机器需要建立相同的用户名)
1 | ssh-keygen -t rsa |
这时,在 ~/.ssh目录下有2个文件 其中id_rsa为私钥,id_rsa.pub为公钥。
4.添加信任名单。较为简单稳妥的方式是这样的。
假设3台机器 hadoop1、hadoop2、hadoop3 。我们先在hadoop1上,执行
1 | cp id_rsa.pub authorized_keys |
再利用 scp ip:远端路径 本地路径 将hadoop2、hadoop3上的公钥文件(.pub文件)拷贝到hadoop1上。(注意:不要重名)
这样hadoop2的公钥文件为2.pub,hadoop3的为3.pub 再将文件,追加合并
1 | cat 2.pub >> authorized_keys |
再用scp命令 scp 本地路径 ip:远端路径 ,将名单分发到hadoop2和hadoop3上
5.在/etc/hosts下,分别加上3台机器的密码。再手工试试 ssh remotelocalhost 看看是否成功。