linux系統多台主機組建hadoop集群,配置ssh免密登入是前提,也是重中之重,下面我就來細扒一下流程,希望大家看了這篇部落格後能提壺灌頂。
修改主機名(永久): hostnamectl set-hostname hadoop01
修改dns: /etc/hosts
重啟: reboot
建立ssh秘鑰並相互拷貝公鑰
ssh-keygen -t rsa -p 「」 -f ~/.ssh/id_rsa
cat ~/.ssh/id_*.pub|ssh root@test2 「cat >> .ssh/authorized_keys」
p.s. 有的機器不支援:ssh-copy-id -i id_rsa.pub use
r@user@
user
@host
提示找不到ssh-copy-id 命令,所以使用上述方法(穩如狗)。
細節記錄
此時在a使用b的ip或主機名都可以直接輸入密碼,不提示輸入yes/no;
而當a自己ssh連線自己時,第一次使用ip時只記錄ip單獨一行(ip 指紋),需要確認(yes/no)了,然後輸入密碼;
當a自己ssh連線自己時,第一次使用主機名時記錄ip和主機名(主機名,ip 指紋),需要確認(yes/no)了,然後輸入密碼;
b. 配置ssh金鑰
ssh-keygen -t rsa -p ""
-f ~/
.ssh/id_rsa
cat ~/
.ssh/id_*
.pub|ssh root@test2 "cat >> .ssh/authorized_keys"
當a將金鑰拷貝到b時(確認和輸密碼),會在b生成乙個authorized_keys檔案(記錄a),同時也在a生成乙個known_hosts檔案(記錄b)
; 當a將金鑰拷貝到a時(確認和輸密碼),會在a生成乙個authorized_keys檔案(記錄a),同時也在a生成乙個known_hosts檔案(記錄a);
c. 當配置好ssh秘鑰後:按上述方法兩兩之間(包括自己)拷貝公鑰
若在a拷貝公鑰時使用的是b的ip:root@ip,則在a的known_hosts檔案只記錄b的ip,
此時在a使用 ssh b的ip 命令可直接登入到b,首次無需確認和輸入密碼;而使用 ssh b的主機名 命令時,首次需要確認(yes/no),不用輸入密碼;
若在a拷貝公鑰時使用的是b的主機名:root@主機名,則在a的known_hosts檔案只記錄b的ip和主機名,
此時在a使用 ssh b的ip 命令或者是使用 ssh b的主機名 命令,首次都無需確認和輸入密碼,直接登入到b;
d. 總結:最好是先配置好主機名和dns後統一使用主機名來操作,拷貝金鑰只需要一次就好,但是要使用ssh命令把主機名和ip都連線一遍,包括自己跟自己;
ssh對應的各目錄和檔案許可權記錄
CentOS7 配置金鑰免密碼登入
在使用者目錄下新建乙個.ssh目錄,並將其目錄許可權改為700 僅使用者自身有讀寫操作許可權 mkdir ssh chmod 700 ssh 進入.ssh目錄,使用ssh keygen命令生成rsa金鑰對 一路回車即可ssh keygen t rsa b 4096 c biabia123456 12...
Centos7 通過SSH使用金鑰實現免密登入
ssh無密碼登入 使用 ssh localhost 得到本地 ssh 檔案目錄 使用 ssh keygen t rsa 生成 ssh id rsa ssh id rsa.pub 二個檔案 使用 ssh copy id username remote server 將ssh 公鑰上傳到目標 linux...
Centos7的ssh免密碼登入
因為hadoop需要登入到各個節點進行操作,每個節點都生成公鑰,然後合併到authorized keys 輸入命令,ssh keygen t rsa,生成key,都不輸入密碼,一直回車,root就會生成.ssh資料夾,每台伺服器都要設定 合併公鑰到authorized keys檔案,在master伺...