佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > Hadoop框架起步之圖解SSH、免密登錄原理和實現(xiàn)方法

Hadoop框架起步之圖解SSH、免密登錄原理和實現(xiàn)方法

熱門標簽:銀行業(yè)務 呼叫中心市場需求 美圖手機 鐵路電話系統(tǒng) 智能手機 網(wǎng)站文章發(fā)布 檢查注冊表項 服務器配置

1. 前言

emmm….最近學習大數(shù)據(jù),需要搭建Hadoop框架,當弄好linux系統(tǒng)之后,第一件事就是SSH免密登錄的設置。對于SSH,我覺得使用過linux系統(tǒng)的程序員應該并不陌生??墒前?,用起來簡單,真讓你說出個所以然,還是件比較困難的事(大佬繞路,此篇文章不屬于你~)。然后,我就好奇心大發(fā),打算寫一篇博客詳細介紹一下SSH和免密登錄的原理及實現(xiàn)。

補充:不管是Hadoop的偽分布還是全分布,Hadoop的名稱結點(NameNode)都需要啟動集群中所有機器的Hadoop守護進程,而這個過程可以通過SSH登錄來實現(xiàn)。由于Hadoop并沒有提供SSH輸入密碼登錄的形式,因此,為了能夠順利登錄每臺機器,就需要對其進行SSH的免密登錄配置。

2. 初見SSH

Secure Shell(安全外殼協(xié)議,簡稱SSH)是一種加密的網(wǎng)絡傳輸協(xié)議,可以在不安全的網(wǎng)絡中為網(wǎng)絡服務提供安全的傳輸環(huán)境(來自維基百科的定義)。根據(jù)其定義,我們能夠理解SSH最常見的用途就是遠程登錄系統(tǒng),人們通常利用SSH來傳輸命令行界面和遠程執(zhí)行命令。

早期的互聯(lián)網(wǎng)通信,例如Telnet和非安全shell,都是采用明文進行傳輸,一旦被截獲,內(nèi)容就會暴露無遺。而SSH就是其上位的替代品。1995年,芬蘭學者Tatu Ylonen設計了SSH協(xié)議,將登錄信息全部加密,成為了互聯(lián)網(wǎng)安全的一個基本解決方案,迅速在全世界獲得推廣。

這里需要注意一下,SSH只是一種協(xié)議(或者可以理解為一種規(guī)定),而它具體的實現(xiàn)有很多,商業(yè),開源的等等。其最流行的實現(xiàn)應該是OpenSSH,本文所針對的實現(xiàn)也是基于OpenSSH的。

3. SSH的工作原理

作為以安全性著稱的協(xié)議,SSH是怎么實現(xiàn)的呢?我們首先想到的肯定是對數(shù)據(jù)進行加密,而SSH的加密方式主要有兩種,一個是對稱加密(密鑰加密),另一個是非對稱加密(公鑰加密)。

3.1 對稱加密

所謂的對稱加密就是客戶端與服務器共用一套密鑰進行數(shù)據(jù)的加解密,詳情見下圖。

圖3-1 對稱加密的過程

這種加密方式很難被破解,但是存在一個問題,如果密鑰泄露,系統(tǒng)數(shù)據(jù)的安全性將不復存在,為了解決這個問題,非對稱加密應運而生。

3.2 非對稱加密

非對稱加密有兩個密鑰:公鑰和私鑰。數(shù)據(jù)使用公鑰加密之后,只能使用私鑰進行解密,而私鑰被破解的概率很低很低,詳情見下圖。

圖3-2 非對稱加密的過程

由于私鑰是服務器獨有的,所以即使客戶機的登錄信息被截取,也是沒有私鑰進行解密的,保證了數(shù)據(jù)的安全性,充分利用了非對稱加密的特點。

3.3 非對稱加密的缺陷

非對稱加密就一定安全了么?答案是否定的。如果黑客冒充了服務器,攔截了登錄請求,并且把自己的公鑰發(fā)送給客戶機,再使用自己的私鑰對密碼進行解密,就會獲取到客戶機的登錄信息,從而造成數(shù)據(jù)泄露,這就是中間人攻擊,詳情見下圖。

圖3-3 非對稱加密的缺陷

對于上訴的缺陷,SSH有兩種解決方法,第一種是基于口令的認證;另一種是基于公鑰的認證,俗稱SSH免密登錄。

3.4 基于口令的認證

根據(jù)圖3-3所示,我們可以發(fā)現(xiàn)問題的關鍵點就在于客戶機沒法分辨出公鑰是否是自己想要登錄的服務器給的公鑰,所以說客戶機只能自己對公鑰進行確認,通常第一次登錄的時候會出現(xiàn)下面的提示。

1 The authenticity of host 'ssh-server.example.com (12.18.429.21)' can't be established.
2 RSA key fingerprint is 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d.
3 Are you sure you want to continue connecting (yes/no)?

提示的內(nèi)容是在說,無法確定ssh-server.example.com (12.18.429.21)主機的真實性,但是知道其公鑰指紋,是否繼續(xù)連接。

之所以使用公鑰指紋,是因為RSA算法生成的公鑰長達1024位,但是通過對公鑰進行hash得到的128位的指紋就很容易進行比較。

輸入yes之后,會出現(xiàn)下面的提示。

1 Warning: Permanently added 'ssh-server.example.com,12.18.429.21' (RSA) to the list of known hosts.
2 Password: (enter password)

提示在說,該主機已經(jīng)添加到known hosts的列表里了,接著輸入密碼,按照圖3-2的流程走就行了。

4.基于公鑰的認證

4.1 SSH免密登錄的原理

免去密碼進行登錄,不僅使得登錄信息不會遭到泄露,而且也簡化、方便了系統(tǒng)之間登錄的操作,提高了工作的效率,工作原理見下圖所示。

圖4-1 免密登錄的原理

4.2 SSH免密登錄的實現(xiàn)(openSSH)

第一步:安裝SSH,命令如下。

 yum install –y openssh-clients openssh-server

這里解釋一下,一臺機器既可以是客戶機也可以是服務器,并且這兩個角色是可以共存的。openssh-clients的功能類似于XShell,可以作為一個客戶端連接上openssh-server。openssh-server的功能主要是作為一個服務(守護進程)運行在后臺,如果這個服務開啟了,我們就可以用一些遠程連接工具來連接centos。由于我是用了Centos6.4的mimimal版本,該版本已經(jīng)安裝了openssh-server,但是卻沒有安裝openssh-clients,所以我只需要安裝openssh-clients即可,而具體安裝情況請根據(jù)自己的系統(tǒng)決定。

第二步:生成密鑰,命令如下。

 ssh-keygen –t rsa –P ‘' –f –/.ssh/id_rsa

ssh-keygen是用來生產(chǎn)密鑰的工具。-t:指定生成密鑰的類型(rsa、dsa、ecdsa等);-P:指定passphrase,用于確保私鑰的安全;-f:指定存放密鑰的文件(公鑰和私鑰默認放在相同目錄下面,區(qū)別是,公鑰的文件名有后綴.pub)

第三步:創(chuàng)建用于保存公鑰的文件authorized_keys,并且把本機公鑰添加到此文件,命令如下。

cat ~/.ssh/id_rsa.pub >> ~./ssh/authorized_keys

第四步:對authorized_keys文件進行授權操作,命令如下。

 chmod 0600 ~/.ssh/authorized_keys

由于每個人使用系統(tǒng)的不同,文件默認的授權也是不相同的,如果不確定的話,可以執(zhí)行上訴命令,對文件進行授權。

第五步:登錄,命令如下。

ssh host

5. 總結和感言

emmm,SSH免密登錄的使用還是挺常見的,也挺簡單的。我覺得吧,凡事不能知其然而不知其所以然,這是我寫這篇博客的目的。同時我也希望讀者能夠通過這篇博客對SSH以及免密登錄能有更好的了解。

這篇博客由于工作的原因,前前后后寫了個把星期,真的很不容易,雖然文中的原理很多是通過學習大佬的文章才會的,但是這篇博客中的每個字我都可以負責任的說是我自己一個一個敲的,所有的圖都是我自己用processOn畫的,如果你有什么問題,可以在博客下留言,我有時間會回復的。

以上所述是小編給大家介紹的Hadoop框架起步之圖解SSH、免密登錄原理和實現(xiàn)方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

您可能感興趣的文章:
  • centos配置ssh免密碼登錄后仍要輸入密碼的解決方法
  • Linux使用ssh公鑰實現(xiàn)免密碼登錄實例
  • 詳解SSH如何配置key免密碼登錄
  • Redhat 7/CentOS 7 SSH 免密登錄的方法
  • Hadoop SSH免密碼登錄以及失敗解決方案
  • ubuntu16.04服務器配置ssh免密碼登錄
  • CentOS 6.5中SSH免密碼登錄配置教程
  • linux遠程登錄ssh免密碼配置方法
  • Linux下實現(xiàn)SSH免密碼登錄和實現(xiàn)秘鑰的管理、分發(fā)、部署SHELL腳本分享
  • Ubuntu下如何設置ssh免密碼登錄安裝

標簽:紅河 上海 長治 樂山 新疆 沈陽 河南 滄州

巨人網(wǎng)絡通訊聲明:本文標題《Hadoop框架起步之圖解SSH、免密登錄原理和實現(xiàn)方法》,本文關鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    马公市| 克拉玛依市| 扬中市| 舒城县| 彰武县| 荥阳市| 无棣县| 行唐县| 雅江县| 栾川县| 准格尔旗| 江达县| 吴江市| 洱源县| 镇赉县| 桐柏县| 长治市| 蓬莱市| 汝城县| 行唐县| 连云港市| 家居| 舟山市| 桂平市| 岳阳市| 乌鲁木齐县| 隆化县| 堆龙德庆县| 抚宁县| 新宾| 罗平县| 巴南区| 威海市| 辽中县| 华坪县| 邵阳市| 绥芬河市| 宜章县| 丹江口市| 陕西省| 航空|