我有兩臺筆記本電腦上分別裝有兩個centos的虛擬機(jī),一個IP為172.16.1.10(slave),一個IP為172.16.1.9(master)。
在slave上用root用戶 vi /etc/hosts ,在里面增加 172.16.1.9 master。
1 在slave上執(zhí)行:
ssh-keygen -t rsa或者ssh-keygen -t rsa -P ''
-P表示密碼,-P '' 就表示空密碼,也可以不用-P參數(shù),這樣就要三車回車,用-P就一次回車。
它在~目錄下生成.ssh目錄,.ssh下有id_rsa和id_rsa.pub。
2 在slave上執(zhí)行scp遠(yuǎn)程拷貝命令:
scp ~/.ssh/id_rsa.pub a href="mailto:hadoop@master:~/id_rsa.pub">hadoop@master:~/id_rsa.pub/a>
由于此時還沒有設(shè)置免密碼登陸,所以此時遠(yuǎn)程拷貝需要輸入密碼。
(scp 命令格式如下:
scp local_file a href="mailto:remote_username@remote_ip:remote_file">remote_username@remote_ip:remote_file/a>)
3 在master上執(zhí)行:
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
將公鑰追加到授權(quán)KEY里面。
4執(zhí)行下面的命令
chmod 600 ~/.ssh/authorized_keys
authorized_keys的權(quán)限要是600。
此時 slave機(jī)就可以 ssh master 了。
小結(jié):登錄的機(jī)子可有私鑰,被登錄的機(jī)子要有登錄機(jī)子的公鑰。這個公鑰/私鑰對一般在私鑰宿主機(jī)產(chǎn)生。上面是用rsa算法的公鑰/私鑰對,當(dāng)然也可以用dsa(對應(yīng)的文件是id_dsa,id_dsa.pub)
想讓A,B機(jī)無密碼互登錄,那B機(jī)以上面同樣的方式配置即可。