hadoop再次集群搭建(2)-配置免秘鑰ssh登錄

jopen 8年前發布 | 17K 次閱讀 分布式/云計算/大數據

SSH對于大多程序員都不陌生,目前主流的云服務提供上也是通過SSH來提供鏈接的安全保障,比如AWS通過使用下載的私鑰(private key)實現與EC2實例安全連接、GitHub通過上傳的公鑰(public key)實現基于git協議(底層使用SSH)遠程庫管理。


SSH(Secure Shell)是一個提供數據通信安全、遠程登錄、遠程指令執行等功能的安全網絡協議,由芬蘭赫爾辛基大學研究員Tatu Yl?nen,于1995年提出,其目的是用于替代非安全的Telnet、rsh、rexec等遠程Shell協議。之后SSH發展了兩個大版本SSH-1和SSH-2。


從客戶端來看,SSH提供兩種級別的安全驗證。

第一種級別(基于口令的安全驗證)只要你知道自己帳號和口令,就可以登錄到遠程主機。所有傳輸的數據都會被加密,但是不能保證你正在連接的服務器就是你想連接的服務器。可能會有別的服務器在冒充真正的服務器,也就是受到“中間人”這種方式的攻擊。

第二種級別(基于密匙的安全驗證)需要依靠密匙,也就是你必須為自己創建一對密匙,并把公用密匙放在需要訪問的服務器上。如果你要連接到SSH服務器上,客戶端軟件就會向服務器發出請求,請求用你的密匙進行安全驗證。服務器收到請求之后,先在你在該服務器的家目錄下尋找你的公用密匙,然后把它和你發送過來的公用密匙進行比較。如果兩個密匙一致,服務器就用公用密匙加密“質詢”(challenge)并把它發送給客戶端軟件。客戶端軟件收到“質詢”之后就可以用你的私人密匙解密再把它發送給服務器。

用這種方式,你必須知道自己密匙的口令。但是,與第一種級別相比,第二種級別不需要在網絡上傳送口令。


有關詳細的介紹,可以參考wiki:https://en.wikipedia.org/wiki/Secure_Shell

我們這里需要對第二種進行配置。

1. 免秘鑰
創建hadoop用戶和用戶組,
節點名稱 IP1 IP2 備注
node1.com 192.168.122.128 動態聯網 root/123456  hadoop/hadoop
node2.com 192.168.122.129 動態聯網 root/123456  hadoop/hadoop
node3.com 192.168.122.130 動態聯網 root/123456  hadoop/hadoop


使用hadoop用戶,命令如下
ssh-keygen -t rsa  生成rsa加密的密鑰

cp id_rsa.pub authorized_keys             copy文件
cat id_rsa.pub>>authorized_keys 將其他的秘鑰追加到這一個文件中,然后分發給所有機器

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAxOUxs3C8xul4iqadE5nfEG8+9lURvGk8o7Z1Ef1cZ3PJBXPPi7/zNUxiL2iD93SMHMwmN6ZaUy9myLCPmyA1oCpOyjzyBQQv0ONk2QkWNytvYaF4KQx3OjF3L1o/YwAbppMzuofX+iBT36IYeRuF/86w6VwRtfCQ/8s6+h84RCAwhdLtopksrtY3v/03UMFaZ1F/GTmQeralSQWuhSbLXgYEhqoPr+AhI/B04PvJA3Q1HTxKMKqll3GmzmvGxhWWpYmKDAJvgnJ5C3jpUMl7NSVMbz0mwzdqk8ao+lt1KYoyl9mwbbs0Al57MyfgftZdttnK1wsVAYnKlFyYJZinGw==  hadoop@node1.com
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAzABdw8P91Ohgobpacj/OpTtt4WHdJrzVQPalUMAZUHoLZSfqtfqSVljpMhD8NmxYh2rHGLivA/pyLIrqEbTshkIyu1vlEDARry5cH02zv5xRQy1/npcLkdKOQbMvecbIO+wginFnedPBTs3Xw0J2XZZJf6G9ySLe2WQt4JW31QordOjfO2ZhQFYHB7icu22ReLB2unBfK9oyc2F+pbTENpe5/Ka5s0qMcX1d0XyVWqUo5F6cnrX/JoQ8xveO+DXJxGMvOZHQJPkfID8KT4mbZ7/kfo5ap9UH5AO4H6Sx9o8pMvZOid0m0kfdmiJ1PgS5kQiJxD1ITSQ7WNCglNTbWQ==  hadoop@node2.com
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6jde660wUazvvRmld6eTD0gFpxIUMvn6eBv8KftjSPfN5KYRq3CugcAUyghq5GRkIyikbLugTzm2WiR3fAZEqZtDtGZk/s+CsryOfwrgrpyWsjU1ZScuKJtKXuo3ZlNB4FrpvxM1xJMd5A2lN3EDDi0JbkyDTajrEQb4+hNwQR+wv11EnjmPAPEJ5FCgM7JfyNC1hqzuht1MwCPyLNekwIuB+hgQaOh81WSY/U52DfKsvDQc0LeEaXxuEfSCFQYjY9VGDO92sHe0dUkGdmjxFiEd5JRObxnQQTMn9rHEcT9iTjruzAi811d3ropvkaGad4JjuJ49LCmmm/WcsmZlEw==  hadoop@node3.com


這樣所有的機器都有一份授權的key,每一個機器訪問的時候保證這臺機器上的 authorized_keys 里面有訪問者的pub key,通過驗證。

接下來配置所有的hosts文件
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.122.128 node1.com
192.168.122.169 node2.com
192.168.122.130 node3.com

使用ssh測試,如果失敗:
情況1: authorized_keys 權限過高:
chmod 600 authorized_keys
情況2: sshd_config

配置成功之后:

Charles 于2015-12-17 Phnom Penh




版權說明:
本文由Charles Dong原創,本人支持開源以及免費有益的傳播,反對商業化謀利。
CSDN博客:http://blog.csdn.net/mrcharles
個人站:http://blog.xingbod.cn
EMAIL:charles@xingbod.cn

來自: http://blog.csdn.net//mrcharles/article/details/50340001

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!