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