分布式系统在传输数据时需要多台电脑免密码登录
如:A(192.168.227.12)想ssh免密码登录到B(192.168.227.12),需要把A的公钥文件(~/.ssh/id_rsa.pub)里内容追加到B的(~/.ssh/authorized_keys)文件中。
就是A把自己的公钥给B,就能免密登录B了。
步骤:
1、修改ssh配置文件
sudo vi /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
将ssh_config中上面三行的开头的#删掉
2、在A上执行ssh-keygen然后回车生成密钥文件,密钥文件默认在用户主目录下.ssh文件夹里,是隐藏的。
第一个是私钥,第二个是公钥。
3、在B上重复2步骤,然后在B的.ssh/文件夹中新建authorized_keys文件,将A中公钥文件(id_rsa.pub)内容追加到B的authorized_keys文件中。
4、chmod命令修改权限
~/ssh/ 文件夹的权限设置为700
~.ssh/authorized_keys 的权限设置为644
5、免密登录是对主机的单个用户而言的,假如A和B都用的hadoop用户操作,
在A上执行 ssh hadoop@192.168.227.12,就一B的hadoop用户登录了。
上面第五步还需输B的ip,配置hosts文件就可以只输主机名
执行 vi /etc/hosts
在文件尾部加入:
192.168.227.12 h2
192.168.227.11 h1
然后上面的第五步就能写成:
ssh hadoop@h2