一 目标
多台Linux机器免密码互相登录,本文以设置两台为例!实现从Master(192.168.1.243)无密码登录Slave1(192.168.1.179)
二 实现原理
使用ssh-keygen生成公钥和私钥,关于公钥和私钥网上有很多说明,其最大特点为公钥和私钥成对出现,用其中一个加密的内容,仅只能用另一个解密, 我们将用Master生成的公钥 拷贝到Slave1。
Linux系统远程登录工具默认为ssh,该工具利用RSA/DSA加密算法实现远程登录,这样保证了远程登录的安全;
三 实现方法 (由于本文后会介绍到Hadoop相关内容所以本文将作为后续安装配置Hadoop的前一部分)
用root登录Master机器,
创建用户 useradd hadoop
修改密码 passwd hadoop 根据提示输入密码即可
修改hosts文件 vim /etc/hosts
将其内容改为
192.168.1.243Master
192.168.1.179Slave1
以上操作在Slave1机器上同样执行
切换到hadoop用户 su – hadoop
执行ssh-keygen-t rsa 一路回车
生成公钥id_rsa和私钥id_rsa.pub
cd /home/hadoop/.ssh/ \\切换到.ssh文件夹下
cp id_rsa.pub authorized_keys \\ 复制公钥id_rsa.pub 为authorized_keys
chmod 600 authorized_keys \\设置权限为拥有者读写
复制authorized_keys到Slave1
scp authorized_keys root@192.168.1.179:/home/hadoop/.ssh/
chmod 700 -R ../.ssh \\ 改变.ssh文件夹的权限
在被控机器Slave1上执行
cat id_rsa.pub >>.ssh/authorized_keys
这时我们已经可以从Master无密码登录到Slave1了
ssh 192.168.1.179
当然因为设置了hosts 我们也可以 ssh Slave1 但注意一定是以Master上的hadoop用户去ssh连接
从Slave1无密码登录到Master是一样的道理