背景:搭建Hadoop環境須要設置無密碼登錄,所謂無密碼登錄實際上是指經過證書認證的方式登錄,使用一種被稱爲"公私鑰"認證的方式來進行ssh登陸。linux
在linux系統中,ssh是遠程登陸的默認工具,由於該工具的協議使用了RSA/DSA的加密算法.該工具作linux系統的遠程管理是很是安全的。telnet,由於其不安全性,在linux系統中被擱置使用了。算法
" 公私鑰"認證方式簡單的解釋:首先在客戶端上建立一對公私鑰 (公鑰文件:~/.ssh/id_rsa.pub; 私鑰文件:~/.ssh/id_rsa)。而後把公鑰放到服務器上(~/.ssh/authorized_keys), 本身保留好私鑰.在使用ssh登陸時,ssh程序會發送私鑰去和服務器上的公鑰作匹配.若是匹配成功就能夠登陸了。vim
生成祕鑰安全
安裝:openssh rsync服務器
生成祕鑰對:ssh-keygen -t rsa -P '' ssh
文件:id_rsa id_rsa.pub 默認存儲路徑 /home/abcd/.sshide
把id_rsa.pub追加到受權的key裏面:cat id_rsa.pub >> authorized_keys工具
修改受權key的權限:chmod 600 authorized_keysoop
修改ssh配置文件:vim /etc/ssh/sshd_config測試
去掉註釋:RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
重啓服務 : service sshd restart
測試: ssh localhost
2. 將公鑰發送到服務器
scp ~/.ssh/id_rsa.pub 遠程用戶名@遠程服務器IP:~/ -->將公鑰複製到遠程服務器的~/目錄
scp ~/.ssh/id_rsa.pub hadoop@192.168.1.134:~/
3. 將公鑰追加到受權key中去
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys -->追加公鑰到受權key中
保險起見,刪除公鑰
4. 回到客戶機測試: ssh 192.168.1.134