分布式系統在傳輸數據時需要多台電腦免密碼登錄
如: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