SSH(Secure Shell)是一種提供網絡安全的傳輸協議。它保證了在網絡上的數據並非明文傳輸,目前使用SSH登錄遠程終端已經是通用方式。
SSH登錄時有兩種驗證方法:
第一種:基於密碼的安全驗證,它要求用戶在每次登錄服務器時輸入密碼,服務器端驗證通過后即登錄成功。
第二種:基於密鑰的安全驗證,客戶端的公鑰會預先保存在服務器端,當登錄時,服務器端會使用該公鑰做驗證,如果驗證成功,用戶不需輸入密碼即完成登錄。
為了避免每次都輸入密碼這種重復性工作,我們選擇第二種方式進行遠程登錄
那么ssh的原理是什么呢?
安裝ssh
一般系統是默認安裝了ssh命令的。如果沒有,或者版本比較老,則可以重新安裝:
sodu apt-get install ssh
具體步驟如下:
ssh-keygen -t rsa 之后一路回 車(產生秘鑰)
把id_rsa.pub 追加到授權的 key 里面去(cat id_rsa.pub >> authorized_keys)
重啟 SSH 服 務命令使其生效 :service sshd restart(這里RedHat下為sshdUbuntu下為ssh)
此時已經可以進行ssh localhost的無密碼登陸
【注意】:如果你要布置集群,以上操作在每台機器上面都要進行。
設置遠程無密碼登陸
這里只有hadoop01是master,如果有多個namenode,或者rm的話則需要打通所有master都其他剩余節點的免密碼登陸。(將hadoop01的authorized_keys追加到hadoop02和hadoop03的authorized_key
# scp authorized_keys root@192.168.0.100:/root/.ssh/