當前位置:
首頁 > 知識 > 配置ssh免密碼登錄——集群學習日記

配置ssh免密碼登錄——集群學習日記


度過了難熬的考試月時期之後,最近和小夥伴一起參加的的比賽進入了緊張的準備時期。在進行工作的時候,發現有很多基礎的知識點,自己不是很清楚以及了解,所以在想,要不就邊學習的時候邊寫下學習日記,以供自己後來不懂的時候查看,同時以希望自己的一些所得能幫助到其他人。共勉之~

前言

Secure Shell(縮寫為SSH),是一項創建在應用層和傳輸層基礎上的安全協議,為計算機上的Shell(殼層)提供安全的傳輸和使用環境。傳統的網路服務程序,如rsh、FTP、POP和Telnet其本質上都是不安全的;因為它們在網路上用明文傳送數據、用戶帳號和用戶口令,很容易受到中間人(man-in-the-middle)攻擊方式的攻擊。就是存在另一個人或者一台機器冒充真正的伺服器接收用戶傳給伺服器的數據,然後再冒充用戶把數據傳給真正的伺服器。而SSH是目前較可靠,專為遠程登錄會話和其他網路服務提供安全性的協議。利用SSH協議可以有效防止遠程管理過程中的信息泄露問題。通過SSH可以對所有傳輸的數據進行加密,也能夠防止DNS欺騙和IP欺騙。SSH之另一項優點為其傳輸的數據可以是經過壓縮的,所以可以加快傳輸的速度。SSH有很多功能,它既可以代替Telnet,又可以為FTP、POP、甚至為PPP提供一個安全的「通道」。

引用於維基百科Secure Shell

SSH的必要性

Hadoop的Master和Slave節點之間的通信,以及Spark的Master和Worker節點之間的通信,都是通過SSH來完成的。我們不希望他們之間的每次通信都輸入一次密碼,所以我們需要他們之間進行SSH免密碼登錄。


前期準備

我在實驗室的三台主機都是Centos 7,自帶了ssh。如果沒有安裝的ssh的可以使用:

yum install ssh

來安裝。


使用ssh-keygen生成私鑰和公鑰

命令行:

ssh-keygen

無論彈出什麼信息都直接enter回車鍵跳過。兩下回車鍵之後就生成了如下文件:

其中id_rsa是私鑰,id_rsa.pub是公鑰。


使用>>把公鑰內容追加到anthorized_keys文件中。

命令行:

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

其中authorized_keys用於保存所有允許以當前用戶身份登錄到ssh客戶端用戶的公鑰內容。


ps:Centos 7上是沒有authorized_keys這個文件的,所以追加之後會自動生成這個文件。

測試是否可以免密碼登錄

命令行:

ssh localhost

出現以下界面,說明可以免密碼登錄了。

此處localhost為本機


按照上面,同時在其他兩台機子上執行同樣的命令

按照上面,同時在其他兩台機子上執行同樣的命令

按照上面,同時在其他兩台機子上執行同樣的命令

重要的事情說三遍!


把公鑰拷貝到其他主機上面的一種可行的方法

我們把三台電腦分別取名為MasterSlave1Slave2。在Slave1上執行

scp id_rsa.pub root@Master_ip:/root/.ssh/id_rsa.pub.slave1

其中,Master_ipMasterip,後面的slave1只是為了區別其他文件而起的。這個可以任意。

執行之後需要輸入Masterroot的密碼之後,就把文件拷貝到Master下了。

同樣Slave2上執行

scp id_rsa.pub root@Master_ip:/root/.ssh/id_rsa.pub.slave2

執行之後可以查看Master.ssh文件夾下存在剛剛的兩個文件了

緊接著的是,把上述兩個文件slave1slave2追加到authorized_keys中。

命令行:

cat id_rsa.pub.slave1 >> authorized_keys

cat id_rsa.pub.slave2 >> authorized_keys

至此,我們都把每台機子的公鑰都拷貝到Master下面的authorized_keys中了。


authorized_keys文件也拷貝到其他的Slave電腦中

命令行:(此時在Master中的.ssh文件夾下)

scp authorized_keys root@slave1_ip:/root/.ssh/authoried_keys

scp authorized_keys root@slave2_ip:/root/.ssh/authoried_keys

其中slave1_ipslave2_ip,為每一台slaveip地址,輸入命令之後輸入每台的Slave的密碼便可以。


結言:

到此,每台機子上面的authoried_keys都含有集群中每台機子的公鑰,都可以直接使用

ssh ip的方式直接登錄了。

參見 王家林/王雁軍/王家虎的《Spark 核心源碼分析與開發實戰》

文章出自kwongtai"blog,轉載請標明出處!

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 科技優家 的精彩文章:

RandomAccessFile類的使用
Android——Intent組件帶參傳遞與返回
Jenkins:執行 PowerShell 命令
使用JDBC技術連接資料庫(附源碼)——JAVA的簡單應用
FZU 2253 salty fish

TAG:科技優家 |

您可能感興趣

「取消」電腦登陸密碼?新版本Windows 10將用手機登錄
Mac使用ssh密鑰登錄Linux
ssh 根據指定埠登錄遠程伺服器
iOS新功能曝光 Apple id可直接登錄第三方網站支持二維碼掃碼登錄
微軟與蘋果合作日趨密切 用戶借Apple Watch可登錄前者賬戶
selenium 模擬瀏覽器登錄微博
登錄Apple ID時發現自己忘記了密碼怎麼辦?
Facebook高管發文解釋如何收集數據 不登錄也能收集
Linux使用ssh遠程登錄Ubuntu
jsp登錄頁面密碼equals驗證出現問題解決辦法
《近期登錄switch遊戲資訊》
Python爬蟲之模擬登錄wechat
Windows 10 更新將會支持更多免密碼登錄
《Unexplored:解鎖版》登錄Switch 末日地牢
「圖」微軟面向Windows 10專業版用戶開放無密碼登錄方式
WinXP/Win7/Win8/Win10系統開機登錄密碼忘記了的清除密碼方法
Facebook高管發文解釋如何收集數據 不登錄也能收集
黑客入侵MEGA Chrome擴展程序,企圖竊取登錄憑證和加密貨幣密鑰
Fedora 31默認禁用OpenSSH root密碼登錄
怎麼更換 Apple ID 登錄郵箱地址