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