400-638-8808
|
微信公眾號(hào)





穩(wěn)定可靠 永不間斷

海外收發(fā) 暢通無阻

協(xié)同辦公 資源管理

超大郵件 超級(jí)功能

智能反垃圾郵件技術(shù)
易管理 免維護(hù)

微信掃一掃 關(guān)注"天下數(shù)據(jù)"商品一律九折
![]()
搜索"朗玥科技"關(guān)注,了解最新優(yōu)惠

我們知道如果要向遠(yuǎn)程服務(wù)器傳輸數(shù)據(jù)和操作必須輸入用戶名和密碼遠(yuǎn)程登錄服務(wù)器 ,或用FTP等協(xié)議,都需要權(quán)限控制。
然而如果是兩臺(tái)服務(wù)器間的軟件需要通訊和數(shù)據(jù)傳輸,如hadoop集群中機(jī)器互訪,是不是每次也要輸入用戶名和密碼?那是不是很麻煩?下面介紹SSH來解決這個(gè)問題(不是JAVA中的SSH概念)
SSH是一種網(wǎng)絡(luò)協(xié)議,用于計(jì)算機(jī)之間的加密登錄。
如果一個(gè)用戶從本地計(jì)算機(jī),使用SSH協(xié)議登錄另一臺(tái)遠(yuǎn)程計(jì)算機(jī),我們就可以認(rèn)為,這種登錄是安全的,即使被中途截獲,密碼也不會(huì)泄露。
最早的時(shí)候,互聯(lián)網(wǎng)通信都是明文通信,一旦被截獲,內(nèi)容就暴露無疑。1995年,芬蘭學(xué)者Tatu Ylonen設(shè)計(jì)了SSH協(xié)議,將登錄信息全部加密,成為互聯(lián)網(wǎng)安全的一個(gè)基本解決方案,迅速在全世界獲得推廣,目前已經(jīng)成為Linux系統(tǒng)的標(biāo)準(zhǔn)配置。
需要指出的是,SSH只是一種協(xié)議,存在多種實(shí)現(xiàn),既有商業(yè)實(shí)現(xiàn),也有開源實(shí)現(xiàn)。本文針對(duì)的實(shí)現(xiàn)是OpenSSH,它是自由軟件,應(yīng)用非常廣泛。
此外,本文只討論SSH在Linux Shell中的用法。如果要在Windows系統(tǒng)中使用SSH,會(huì)用到另一種軟件PuTTY
Hadoop運(yùn)行過程中需要管理遠(yuǎn)端Hadoop守護(hù)進(jìn)程,在Hadoop啟動(dòng)以后,NameNode是通過SSH(Secure Shell)來啟動(dòng)和停止各個(gè)DataNode上的各種守護(hù)進(jìn)程的。
這就必須在節(jié)點(diǎn)之間執(zhí)行指令的時(shí)候是不需要輸入密碼的形式,故我們需要配置SSH運(yùn)用無密碼公鑰認(rèn)證的形式,這樣NameNode使用SSH無密碼登錄并啟動(dòng)DataName進(jìn)程,同樣原理,DataNode上也能使用SSH無密碼登錄到NameNode。
下面就安裝總結(jié)一下網(wǎng)友和自己的經(jīng)驗(yàn)。
CentOS7.0
yum install ssh 安裝SSH協(xié)議 yum install rsync (rsync是一個(gè)遠(yuǎn)程數(shù)據(jù)同步工具,可通過LAN/WAN快速同步多臺(tái)主機(jī)間的文件) service sshd restart 啟動(dòng)服務(wù)
查看安裝
rpm –qa | grep openssh rpm –qa | grep rsync

為避免麻煩,每個(gè)服務(wù)器上都要裝。
1)SSH無密碼原理
Master(NameNode | JobTracker)作為客戶端,要實(shí)現(xiàn)無密碼公鑰認(rèn)證,連接到服務(wù)器Salve(DataNode | Tasktracker)上時(shí),需要在Master上生成一個(gè)密鑰對(duì),包括一個(gè)公鑰和一個(gè)私鑰,而后將公鑰復(fù)制到所有的Slave上。當(dāng)Master通過SSH連接Salve時(shí),Salve就會(huì)生成一個(gè)隨機(jī)數(shù)并用Master的公鑰對(duì)隨機(jī)數(shù)進(jìn)行加密,并發(fā)送給Master。Master收到加密數(shù)之后再用私鑰解密,并將解密數(shù)回傳給Slave,Slave確認(rèn)解密數(shù)無誤之后就允許Master進(jìn)行連接了。這就是一個(gè)公鑰認(rèn)證過程,其間不需要用戶手工輸入密碼。重要過程是將客戶端Master復(fù)制到Slave上。
2)Master機(jī)器上生成密碼對(duì)
在Master節(jié)點(diǎn)上執(zhí)行以下命令:
ssh-keygen –t rsa –P '
這條命是生成其無密碼密鑰對(duì),詢問其保存路徑時(shí)直接回車采用默認(rèn)路徑。生成的密鑰對(duì):id_rsa和id_rsa.pub,默認(rèn)存儲(chǔ)在"/home/hadoop/.ssh"目錄下(每臺(tái)服務(wù)器看各自的生成路徑信息 因?yàn)閔adoop為用戶名,所以生成在當(dāng)前用戶名下)。

查看"/home/hadoop/"下是否有".ssh"文件夾,且".ssh"文件下是否有兩個(gè)剛生產(chǎn)的無密碼密鑰對(duì)。

接著在Master節(jié)點(diǎn)上做如下配置,把id_rsa.pub追加到授權(quán)的key里面去。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

在驗(yàn)證前,需要做兩件事兒。第一件事兒是修改文件"authorized_keys"權(quán)限(權(quán)限的設(shè)置非常重要,因?yàn)椴话踩脑O(shè)置安全設(shè)置,會(huì)讓你不能使用RSA功能),另一件事兒是用root用戶設(shè)置"/etc/ssh/sshd_config"的內(nèi)容。使其無密碼登錄有效。
1)修改文件"authorized_keys"
chmod 600 ~/.ssh/authorized_keys

備注:如果不進(jìn)行設(shè)置,在驗(yàn)證時(shí),扔提示你輸入密碼,在這里花費(fèi)了將近半天時(shí)間來查找原因。
2)設(shè)置SSH配置
用root用戶登錄服務(wù)器修改SSH配置文件"/etc/ssh/sshd_config"的下列內(nèi)容。

RSAAuthentication yes # 啟用 RSA 認(rèn)證 PubkeyAuthentication yes # 啟用公鑰私鑰配對(duì)認(rèn)證方式 AuthorizedKeysFile .ssh/authorized_keys # 公鑰文件路徑(和上面生成的文件同)
設(shè)置完之后記得重啟SSH服務(wù),才能使剛才設(shè)置有效。
service sshd restart
退出root登錄,使用hadoop普通用戶驗(yàn)證是否成功。
ssh localhost

從上圖中得知無密碼登錄本級(jí)已經(jīng)設(shè)置完畢,接下來的事兒是把公鑰復(fù)制所有的Slave機(jī)器上。使用下面的命令格式進(jìn)行復(fù)制公鑰:
scp ~/.ssh/id_rsa.pub 遠(yuǎn)程用戶名@遠(yuǎn)程服務(wù)器IP:~/
例如:
scp ~/.ssh/id_rsa.pub hadoop@192.168.1.3:~/
上面的命令是復(fù)制文件"id_rsa.pub"到服務(wù)器IP為"192.168.1.3"的用戶為"hadoop"的"/home/hadoop/"下面。
下面就針對(duì)IP為"192.168.1.3"的Slave1.Hadoop的節(jié)點(diǎn)進(jìn)行配置。
1)把Master.Hadoop上的公鑰復(fù)制到Slave1.Hadoop上

從上圖中我們得知,已經(jīng)把文件"id_rsa.pub"傳過去了,因?yàn)椴]有建立起無密碼連接,所以在連接時(shí),仍然要提示輸入輸入Slave1.Hadoop服務(wù)器用戶hadoop的密碼。為了確保確實(shí)已經(jīng)把文件傳過去了,用SecureCRT登錄Slave1.Hadoop:192.168.1.3服務(wù)器,查看"/home/hadoop/"下是否存在這個(gè)文件。

從上面得知我們已經(jīng)成功把公鑰復(fù)制過去了。
2)在"/home/hadoop/"下創(chuàng)建".ssh"文件夾
這一步并不是必須的,如果在Slave1.Hadoop的"/home/hadoop"已經(jīng)存在就不需要?jiǎng)?chuàng)建了,因?yàn)槲覀冎安]有對(duì)Slave機(jī)器做過無密碼登錄配置,所以該文件是不存在的。用下面命令進(jìn)行創(chuàng)建。(備注:用hadoop登錄系統(tǒng),如果不涉及系統(tǒng)文件修改,一般情況下都是用我們之前建立的普通用戶hadoop進(jìn)行執(zhí)行命令。)
mkdir ~/.ssh
然后是修改文件夾".ssh"的用戶權(quán)限,把他的權(quán)限修改為"700",用下面命令執(zhí)行:
chmod 700 ~/.ssh
備注:如果不進(jìn)行,即使你按照前面的操作設(shè)置了"authorized_keys"權(quán)限,并配置了"/etc/ssh/sshd_config",還重啟了sshd服務(wù),在Master能用"ssh localhost"進(jìn)行無密碼登錄,但是對(duì)Slave1.Hadoop進(jìn)行登錄仍然需要輸入密碼,就是因?yàn)?quot;.ssh"文件夾的權(quán)限設(shè)置不對(duì)。這個(gè)文件夾".ssh"在配置SSH無密碼登錄時(shí)系統(tǒng)自動(dòng)生成時(shí),權(quán)限自動(dòng)為"700",如果是自己手動(dòng)創(chuàng)建,它的組權(quán)限和其他權(quán)限都有,這樣就會(huì)導(dǎo)致RSA無密碼遠(yuǎn)程登錄失敗。


對(duì)比上面兩張圖,發(fā)現(xiàn)文件夾".ssh"權(quán)限已經(jīng)變了。
3)追加到授權(quán)文件"authorized_keys"
到目前為止Master.Hadoop的公鑰也有了,文件夾".ssh"也有了,且權(quán)限也修改了。這一步就是把Master.Hadoop的公鑰追加到Slave1.Hadoop的授權(quán)文件"authorized_keys"中去。使用下面命令進(jìn)行追加并修改"authorized_keys"文件權(quán)限:
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys

4)用root用戶修改"/etc/ssh/sshd_config"
具體步驟參考前面Master.Hadoop的"設(shè)置SSH配置",具體分為兩步:第1是修改配置文件;第2是重啟SSH服務(wù)。
5)用Master.Hadoop使用SSH無密碼登錄Slave1.Hadoop
當(dāng)前面的步驟設(shè)置完畢,就可以使用下面命令格式進(jìn)行SSH無密碼登錄了。
ssh 遠(yuǎn)程服務(wù)器IP

從上圖我們主要3個(gè)地方,第1個(gè)就是SSH無密碼登錄命令,第2、3個(gè)就是登錄前后"@"后面的機(jī)器名變了,由"Master"變?yōu)榱?quot;Slave1",這就說明我們已經(jīng)成功實(shí)現(xiàn)了SSH無密碼登錄了。
最后記得把"/home/hadoop/"目錄下的"id_rsa.pub"文件刪除掉。
rm –r ~/id_rsa.pub

到此為止,我們經(jīng)過前5步已經(jīng)實(shí)現(xiàn)了從"Master.Hadoop"到"Slave1.Hadoop"SSH無密碼登錄,下面就是重復(fù)上面的步驟把剩余的Slave服務(wù)器進(jìn)行配置。這樣,我們就完成了"配置Master無密碼登錄所有的Slave服務(wù)器"。
產(chǎn)品與服務(wù)
香港服務(wù)器 香港高防服務(wù)器 美國服務(wù)器 韓國服務(wù)器 新加坡服務(wù)器 日本服務(wù)器 臺(tái)灣服務(wù)器云服務(wù)器
香港云主機(jī) 美國云主機(jī) 韓國云主機(jī) 新加坡云主機(jī) 臺(tái)灣云主機(jī) 日本云主機(jī) 德國云主機(jī) 全球云主機(jī)高防專線
海外高防IP 海外無限防御 SSL證書 高防CDN套餐 全球節(jié)點(diǎn)定制 全球?qū)>GPLC關(guān)于我們
關(guān)于天下數(shù)據(jù) 數(shù)據(jù)招商加盟 天下數(shù)據(jù)合作伙伴 天下數(shù)據(jù)團(tuán)隊(duì)建設(shè) 加入天下數(shù)據(jù) 媒體報(bào)道 榮譽(yù)資質(zhì) 付款方式關(guān)注我們
微信公眾賬號(hào)
新浪微博
天下數(shù)據(jù)手機(jī)站 關(guān)于天下數(shù)據(jù) 聯(lián)系我們 誠聘英才 付款方式 幫助中心 網(wǎng)站備案 解決方案 域名注冊(cè) 網(wǎng)站地圖
天下數(shù)據(jù)18年專注海外香港服務(wù)器、美國服務(wù)器、海外云主機(jī)、海外vps主機(jī)租用托管以及服務(wù)器解決方案-做天下最好的IDC服務(wù)商
《中華人民共和國增值電信業(yè)務(wù)經(jīng)營許可證》 ISP證:粵ICP備07026347號(hào)
朗信天下發(fā)展有限公司(控股)深圳市朗玥科技有限公司(運(yùn)營)聯(lián)合版權(quán)
深圳總部:中國.深圳市南山區(qū)深圳國際創(chuàng)新谷6棟B座10層 香港總部:香港上環(huán)蘇杭街49-51號(hào)建安商業(yè)大廈7樓
7×24小時(shí)服務(wù)熱線:4006388808香港服務(wù)電話:+852 67031102
本網(wǎng)站的域名注冊(cè)業(yè)務(wù)代理北京新網(wǎng)數(shù)碼信息技術(shù)有限公司的產(chǎn)品