两台机器 : hadoopmaster 192.168.85.152 和 hadoopslave 192.168.85.153,
配置ssh,使 hadoopmaster(简称Mats而)免密码登录到 hadoopslave(简称Slave)。
1、安装openssh-server
由于ubuntu默认安装了 openssh-client,但是没有安装openssh-server,因此我们需要安装 openssh-server,两台机器上都需要安装
命令:sudo apt-get install -y openssh-server ,如图:
2、生成公约和密钥
这里为了简单,我们使用root来生成rsa公约和密钥,命令:ssh-keygen -t rsa,如图:
3、仅在master上执行
a、命令: cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys ,把公用密匙添加到authorized_keys 文件中
b、把slave节点的公钥拷贝到master节点中的authorized_keys,
命令:ssh 192.168.85.153 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
其中,192.168.85.153是Slave的IP,我使用Slave的机器名会失败(可能是名称和网络上的有重复吗?)
c、把authorized_keys文件拷贝回每一个节点,
命令:scp ~/.ssh/authorized_keys 192.168.85.153:~/.ssh/authorized_keys
4、修改文件权限
将 .ssh 文件设为 755 ,然后将 id_rsa权限设为600;
使用命令: chmod go-w ~/ 和 chmod 700 .ssh 和 chmod 600 id_rsa
这样Master就可以 ssh 192.168.85.153 到 Slave上了,要想Slave能免密码登录到 Master上,将步骤3在Slave上执行一遍就行了。
chmod go-w ~/ 这个很重要。如果你的用户目录被设定为其它用户和组用户可以写,那么即时你更改了 .ssh 目录和其文件也不管用!!!!!
5、有时候为了方便登录,不想每次都输入 ssh username@host来登录服务器,可以在.ssh目录下新建一个config文件
Host 简称 hostname 机器域名或ip user 用户名
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
然后ssh-add ~/.ssh/id_rsa