1. 程式人生 > >centos 7 系統下進行多伺服器的SSH免密碼登入配置

centos 7 系統下進行多伺服器的SSH免密碼登入配置

學習ssh配置的目的就是為學習hadoop做鋪墊。因為在進行hadoop完全分散式的大資料處理,需要用到客戶端與各個伺服器之間進行面密碼登陸並配合來完成資料處理。

基於此,我就在網上搜索了幾篇文章,嘗試著去配置。“好事多磨”,從開始配置到我真正的配置成功,還是今天上午的事情。從前天到今天,兩天半時間。經歷了無數次的虛擬機器中centos7系統的安裝、測試。然後我就把我走過的曲折歷程講述一哈:

為什麼使用ssh?

比如在進行大型的叢集管理時候,可以避免繁瑣的密碼驗證。這樣,通過配置ssh,不僅可以保證各個節點(伺服器)之間通訊的安全性,而且不用頻繁輸入密碼,提高管理效率;注意:我現在所說的是ssh的單向驗證登陸,而非雙向的。也就是說只能進行 master->slave1 、master->slave2 、 master->slaveX ,但是不能出現 slaveX->master or slaveX->slaveX' 的情況。除非,進行了金鑰對的雙向驗證。

配置ssh的詳細流程

本機系統是Windows 10 虛擬機器是VMware 8
Linux系統環境是CentOS-7-x86_64-DVD-1708.iso
在這裡我就在虛擬機器上創建出3臺虛擬伺服器. 主機名分別是:h147、h148 和 h149 軟體選擇的是:基礎設施伺服器 三臺伺服器的管理員統一使用者名稱:hadoop
伺服器配置展示
主機名 主機別名 使用者名稱 IP地址
h147 master hadoop 192.168.127.147
h148 slave1 hadoop 192.168.127.148
h149 slave2 hadoop 192.168.127.149

通過root許可權修改hosts檔案,配置主機別名與IP地址的對映關係


至此,主機h147中主機別名和IP地址的對映關係就配置好了《slave2 對應的是192.168.127.149》。然後分別登入h148和h149使用同樣的方式進行配置。(意思就是修改h147、h148和h149的hosts一樣就得)

在進行SSH配置之前有一點請注意:客戶端傳送到伺服器端的金鑰檔案,一定要放到登入使用者的主目錄的.ssh/下面。用h147(master)、h148(slave1)和h149(slave2)這三臺機器簡單表示說就是:主機master上的一個管理員使用者hadoop,在hadoop下生產金鑰對,一定要放到目錄 :/home/hadoop/.ssh 的下面。

為什麼呢?因為免密碼登入其實是通過檔案中的一行程式碼:


 /etc/ssh/sshd_config 檔案中紅色框中的程式碼  (慢慢你就能感受到了)

好了,我們繼續操作:


看到這裡我們的金鑰對就生成了!!

注意:有的部落格上說,(對於我目前的配置上)上圖中的綠色的線框中 [email protected] , 實則應是 [email protected] 不然整個配置不會成功。我已經驗證過了,可以成功!其他部落格說的不對!!

注意:上圖黃色線框中的兩次對於金鑰的密碼設定,不要輸入密碼,直接回車直到最後。因為這裡是一個坑,當你輸入密碼之後,即使你的ssh都配置成功了。在你進行 master->slave 進行登入的時候,你會發現-他媽的還是需要輸入密碼。而不能做到免密碼,當然了,讓你做的密碼驗證登入是 rsa 的密碼。這個坑我呆了一天半才出來。


注意:還有的部落格說(上圖),需要這種操作。我就很納悶了,我當時就單純的按照他們這種操作進行了,可是進入後發現,為什麼我的這個檔案中沒有 #RAAAuthentication yes 這行程式碼??心瞬間碎了一地!然後我就驕傲的自己粘了一行到這個檔案中。繼續,然後,最後,不成功!而且報的就是 這行程式碼的問題。而這裡,這次配置根本沒有對這個檔案做任何處理,仍然是成功的!需要指出的是  三臺伺服器上的  AuthorizedKeysFile    .ssh/authorized_keys  這行程式碼必須是解註釋狀態,ta屬於伺服器檔案,所有的免密碼登入都是通過ta的匹配授權。


接著繼續,成功生成了金鑰對,進入到 /home/hadoop/.ssh/ 檢視,可以看到 id_rsa 、 id_rsa.pub 兩個檔案。

通過命令

$cat id_rsa.pub >> authorized_keys
將公鑰上傳到伺服器。

通過命令

$scp id_rsa_pub [email protected]:/home/hadoop

將 主機master下 的 hadoop使用者下目錄檔案 /home/hadoop/.ssh/id_rsa.pub 傳遞到 主機slave1下的hadoop使用者下的目錄 /home/hadoop/ 下面。


然後我們可以看到,公鑰 id_rsa.pub 已經從 h147 傳遞到 h148 的 /home/hadoop/ 目錄下。然後再剪下到 /home/hadoop/.ssh/下面(h148的hadoop下 .ssh 目錄是通過 mkdir 生成),執行 命令

#cat id_rsa.pub >> authorized_keys 
追加到檔案authorized_keys中。

注意:我最初為了圖個簡單,直接把h147中的 authorized_keys 傳遞到了 h148 對應的hadoop目錄下。但是最後結果是失敗的,原因可能是在slave中的 ./ssh 下也必須有檔案 id_rsa.pub 導致。

最後,在h147中的hadoop使用者下執行命令

$ssh [email protected]
免密碼登入成功!<如果是第一次會讓你輸入密碼,之後就不用了>

注意:還有一點就是有的部落格說有時候需要更改 master 和 slave 的檔案的許可權,否則會導致無法金鑰授權登入(免密碼登入), 也就是,.ssh 許可權 700  .ssh/authorized_keys 許可權 600 。我也遇到一次是在如果master和localhost一樣時候,使用本地ssh登入需要修改許可權,但是之後對各個節點的ssh登入就沒遇到!本次的配置,我沒有設定檔案的許可權,都是預設的。

然後,對於slave2的操作同slave1的操作!

然後,記錄一下遇到的下一個問題。但是不太確定廣泛的情況是否是這樣。只是在我的電腦上今天遇到了。

就是如果,我各個方面已經配置好了。但是使用master 對 slave進行ssh登入時候還是需要密碼;結果我在slave上改變了 .ssh 的建立方式,並沒有更改其許可權則成功了了!



相關推薦

centos 7 系統進行伺服器SSH密碼登入配置

學習ssh配置的目的就是為學習hadoop做鋪墊。因為在進行hadoop完全分散式的大資料處理,需要用到客戶端與各個伺服器之間進行面密碼登陸並配合來完成資料處理。 基於此,我就在網上搜索了幾篇文章,嘗試著去配置。“好事多磨”,從開始配置到我真正的配置成功,還是今天上午的事

CentOS 7 不同主機間 ssh 密碼登入

因在CentOS 7 下為了配置 hadoop 叢集,需要建立不同的CentOS主機之間的信任。簡單說,就是從一臺CentOS主機通過 ssh 命令以使用者免密碼(我這裡用到的使用者名稱和密碼都是zhimin)登入到另一臺CentOS主機。其中 zhimin 是我在安裝三臺

Linux伺服器SSH密碼登入配置

SSH實現各個伺服器間的檔案相互備份,如執行scp命令,可以實現免密碼登入,從而可以使用SHELL指令碼實現一些自動化的處理。 假如A機要免密碼登入B機,具體方法如下: 1、在A機執行:"ssh-keygen -t rsa" 命令,建立公鑰資訊 #ssh-keygen

LinuxSSH密碼登入配置

假設有 A、 B 兩臺 Linux 伺服器,我們希望能夠從其中一臺伺服器通過 SSH 免密碼登入到另一臺伺服器。 兩臺伺服器的資訊如下: 主機名    IP地址    免密碼登入使用者名稱 server1    

大資料環境基礎之Centos安裝Haoop叢集(4)ssh密碼登入

ssh免密碼登入的配置需要在當前使用者下的根目錄下 用命令ssh-keygen -t rsa生成公鑰和祕鑰 用命令ls -a檢視.ssh檔案 進入.ssh資料夾裡面,用命令ls檢視公鑰和祕鑰 將公鑰儲存在authorized_keys檔案中 修改authorized

SSH密碼登入配置.md

在客戶機生成私鑰和公鑰後,將公鑰放在服務機,後續客戶機通過ssh遠端登入服務機時,將不再提示輸入服務機登入密碼,即可實現免密碼登入。 這種“公鑰登入”方式,可用在伺服器間,也可以用在個人電腦(mac\windows\linux),從而實現免密碼遠端登入伺服器;

SSH 密碼登入配置

ssh-keygen -t rsacd .ssh/cp id_rsa.pub authorized_keysvi authorized_keys新增別的節點pub。 SCP命令安裝yum install openssh-clients 複製檔案到別的節點scp authorized_keys [email

MySQL---如何在window 10和CentOS 7系統安裝MySQL

Windows 10 安裝準備 下載安裝包 檢查作業系統型別 使用快捷鍵win+pause 檢視需要安裝32(x86)位還是64位(x64) 檢查系統是否已安裝MySQL 如果系統中已經安裝過MySQL那麼建議

centos 7 ssh密碼登入(補充1.6 SSH登入

參考(十分詳細):http://blog.csdn.net/newstruts/article/details/46424191 目的 在搭建Linux叢集服務的時候,主伺服器需要啟動從伺服器的服務,如果通過手動啟動,叢集內伺服器幾臺還好,要是像阿里1000臺

Centos伺服器ssh登入以及搭建私有git伺服器

一、概述   伺服器的免密登入和git伺服器的搭建,關鍵都是要學會把自己用的機器的公鑰新增到伺服器上,讓伺服器“認識”你的電腦,從而不需要輸入密碼就可以遠端登入伺服器上的使用者   免密登入當然是登入root使用者,而搭建git伺服器需要在伺服器上建立一個git使用者。注意伺服器上每個使用者識別的公鑰存在不同

Docker,實現臺機器之間相互SSH密碼登入

在Docker下搭建hadoop叢集環境的時候,需要將叢集的機器設定為相互SSH免密碼登入,這裡將整個設定過程總結下來。 機器情況 一共啟動三個容器,都是centos6.7的系統,每個容器的名字和ip如下圖所示: 映象檔案 我們要實現SSH免

Mac客戶端CentOS伺服器 SSH密碼登陸

【原文連結】 http://cvito.net/index.php/archives/537 在學習GIT伺服器搭建過程中,需要用到SSH進行客戶端與伺服器的連線。 為了在使用SSH登陸伺服器時省去每次輸入密碼的麻煩,所以弄了一下SSH免密碼登陸。 1 在Mac客

centos 7 ssh密碼登入

目的 在搭建Linux叢集服務的時候,主伺服器需要啟動從伺服器的服務,如果通過手動啟動,叢集內伺服器幾臺還好,要是像阿里1000臺的雲梯hadoop叢集的話,軌跡啟動一次叢集就得幾個工程師一兩天時間,是不是很恐怖。如果使用免密登入,主伺服器就能通過程式執行啟動腳步,自動幫

Centos 解決SSH 密碼登入 以及Crontab製作定時SSH自動登入和關閉的指令碼

一、SSH免密碼登入 假設要登入的機器為192.168.1.100,當前登入的機器為192.168.1.101。 首先在101的機器上生成金鑰(如果已經生成可以跳過): $ ssh-keygen -t rsa一路回車即可。 然後在將生成的公鑰複製到機器100上的~/.ssh/authorized_ke

解決:centos配置ssh密碼登入後仍要輸入密碼

轉自https://www.jb51.net/article/121180.htm   第一步:在本機中建立祕鑰 1、執行命令:ssh-keygen -t rsa  2、之後一路回車就行啦;會在~(home)目錄下中產生.ssh(隱藏)資料夾;

SSH 登入配置和遠端登入伺服器

生成SSH私鑰和公鑰 ssh-keygen -t rsa 手動建立一個 authorized_keys檔案 touch ~/.ssh/authorized_keys 公鑰檔案內容複製到authorized_keys檔案裡面 cat ~/.ssh/id_rsa.pub

ssh密碼登入linux伺服器

1、環境:win10、win10裝有的git、linux伺服器 2、開啟git,檢視win10本機的公鑰 $ cat ~/.ssh/id_rsa.pub 3、開啟伺服器,建立.ssh目錄,進入 [[email protected] ~]# mkdir ~/.ssh/ [

CentOS ssh密碼登入

    在搭建Hadoop環境的時候,需要設定一下免密碼登入。     之前做過一次免密是成功的,最近又做了一次,居然不成功。。。很鬱悶,很納悶,     下面把我的操作步驟和經驗分享一下: 系

CentOS 配置叢集機器之間SSH密碼登入

特別提示:不能使用root使用者 SSH 為 Secure Shell 的縮寫,由 IETF 的網路小組(Network Working Group)所制定;SSH 為建立在應用層和傳輸層基礎上的安全協議。SSH 是目前較可靠,專為遠端登入會話和其他網路服務提供安全

【Linux】Linux作業系統——配置ssh密碼登入遠端伺服器

ssh免密碼登入遠端伺服器 最簡單的操作 ssh免密碼登入的原理是把本地電腦的公鑰放在宿主機,然後使用本地電腦的私鑰去認證。 在本地電腦執行 /usr/bin/ssh-keygen -t rsa,安裝提示一直回車即可,最後會看到~/.ssh目錄下多了幾個檔案id_rsa (