如果機器A在登入其他N台機器時想要無密碼登入可以透過公開金鑰的概念,在自己的機器上產生一對「公鑰」和「密鑰」然後把公鑰給這N台機器,這樣N台機器有了A的公鑰就可以進行解密並通訊。
通常在一個cluster中會以一台機器作為master,在這台機器上登入其它機器,如Hadoop的master,接著會說明如何配置從master以SSH無密碼方式登入到所有機器。
一、修改hosts文件,設有三台機器
vi /etc/hosts
192.168.121.128 master
172.17.0.28 slave1
172.17.0.29 slave2
二、在設定之前先清除已經ssh的連線
rm -rf ~/.ssh/*
三、在master上產生一對金鑰
ssh-keygen -q -N "" -t rsa -f ~/.ssh/id_rsa
四、將公鑰拷貝到自己
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
五、將公鑰拷貝到其他機器,這裡仍須輸入密碼,因為僅將公鑰丟過去並未寫入authorized_keys。
scp ~/.ssh/id_rsa.pub root@slave1:~/.ssh/id_rsa.pub scp ~/.ssh/id_rsa.pub root@slave2:~/.ssh/id_rsa.pub
六、以ssh登入對方機器,並將public_key寫入到authorized_keys才能免密碼登入
ssh root@slave1 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys ssh root@slave2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
七、若不在意安全性,可以考慮直接將~/.ssh資料夾copy過去即可。
scp -r ~/.ssh root@slave1:~
六、測試
ssh root@slave1
留言
張貼留言