搭建Hadoop環境需要設置無密碼登陸,所謂無密碼登陸其實是指通過證書認證的方式登陸,使用一種被稱為"公私鑰"認證的方式來進行ssh登錄。在linux系統中,ssh是遠程登錄的默認工具,因為該工具的協議使用了RSA/DSA的加密算法.該工具做linux系統的遠程管理是非常安全的。telnet,因為其不安全性,在linux系統中被擱置使用了。
" 公私鑰"認證方式簡單的解釋:首先在客戶端上創建一對公私鑰 (公鑰文件:~/.ssh/id_rsa.pub; 私鑰文件:~/.ssh/id_rsa)。然後把公鑰放到服務器上(~/.ssh/authorized_keys), 自己保留好私鑰.在使用ssh登錄時,ssh程序會發送私鑰去和服務器上的公鑰做匹配.如果匹配成功就可以登錄了。
1、確認系統已經安裝了SSH。
rpm –qa | grep openssh
rpm –qa | grep rsync
-->出現如下圖的信息表示已安裝
假設沒有安裝ssh和rsync,可以通過下面命令進行安裝。
yum install ssh -->安裝SSH協議
yum install rsync -->rsync是一個遠程數據同步工具,可通過LAN/WAN快速同步多台主機間的文件
service sshd restart -->啟動服務
2、生成秘鑰對
ssh-keygen –t rsa –P '' -->直接回車生成的密鑰對:id_rsa和id_rsa.pub,默認存儲在"/home/hadoop/.ssh"目錄下。
3、把id_rsa.pub追加到授權的key裡面去。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
4、修改授權key的權限
chmod 600 ~/.ssh/authorized_keys
5、修改SSH配置文件
su - -->登陸root用戶修改配置文件
vim /etc/ssh/sshd_config -->去掉下圖中三行的注釋
6、測試連接
service sshd restart -->重啟ssh服務,
exit -->退出root用戶,回到普通用戶
ssh localhost -->連接普通用戶測試
這只是配置好了單機環境上的SSH服務,要遠程連接其它的服務器,接著看下面。
7、現在秘鑰對已經生成好了,客戶端SSH服務也已經配置好了,現在就把我們的鑰匙(公鑰)送給服務器。
scp ~/.ssh/id_rsa.pub 遠程用戶名@遠程服務器IP:~/ -->將公鑰復制到遠程服務器的~/目錄下
如: scp ~/.ssh/id_rsa.pub [email protected]:~/
可以看到我們復制的時候需要我們輸入服務器的密碼,等我們把SSH配置好之後這些步驟就可以不用輸入密碼了。
8、上一步把公鑰發送到192.168.1.134服務器上去了,我們去134機器上把公鑰追加到授權key中去。
注意:如果是第一次運行SSH,那麼.ssh目錄需要手動創建,或者使用命令ssh-keygen -t rsa生成秘鑰,它會自動在用戶目錄下生成.ssh目錄。特別注意的是.ssh目錄的權限問題,記得運行下chmod 700 .ssh命令
在134機器上使用命令:cat ~/id_rsa.pub >> ~/.ssh/authorized_keys -->追加公鑰到授權key中rm ~/id_rsa.pub -->保險起見,刪除公鑰同樣在134機器上重復第四步和第五步,service sshd restart --上一步把公鑰發送到192.168.1.134服務器上去了,我們去134機器上把公鑰追加到授權key中去。
注意:如果是第一次運行SSH,那麼.ssh目錄需要手動創建,或者使用命令ssh-keygen -t rsa生成秘鑰,它會自動在用戶目錄下生成.ssh目錄。特別注意的是.ssh目錄的權限問題,記得運行下chmod 700 .ssh命令
在134機器上使用命令:cat ~/id_rsa.pub >> ~/.ssh/authorized_keys -->追加公鑰到授權key中rm ~/id_rsa.pub -->保險起見,刪除公鑰同樣在134機器上重復第四步和第五步,service sshd restart -->重啟ssh服務
>重啟ssh服務
9、回到客戶機來,輸入:ssh 192.168.1.134 -->應該就能直接連接服務器咯。回到客戶機來,輸入:ssh 192.168.1.134 -->應該就能直接連接服務器咯。
相關推薦:
LINUX系統怎麼使用命令清理磁盤空間?
linux常怎麼使用命令創建文件和文件夾?
Linux怎麼配置雙機SSH互相信任實現免密碼登錄?