【0】寫在前面
由於SSH 實現的是免密碼登陸,大致步驟是:
0.1) client通過ssh登陸到server;
0.2) server檢查家目錄下的.ssh文件, 並發送公鑰文件 authorized_keys 到client ;
0.3) client端 接收到 server 端的公鑰文件,並用自己的私鑰文件對 其進行解析,並計算出 新的 公鑰文件C;
0.4) server段 接收到 client的 公鑰文件C,並將其與 自身的公鑰文件,進行匹配,(它有它自己的匹配算法, 這個你不管),如果匹配成功,則client 成功登陸到server;
(Attention):
看到這裡,不得不說建立ssh 免密碼登陸的中間過程確實很復雜,所以ssh對配置文件的訪問權限,要求相當苛刻。如友人您,不根據本文的訪問權限進行相應設置,使得最終無法建立免密碼登陸,後果自負(這裡只是為了強調 ssh 對 配置文件的訪問權限 要求非常得嚴格!(過來人的感受,僅僅是你配置文件的訪問權限不完全正確,ssh 一直無法實現 正常的免密碼登陸, 很燒精力)
【1】安裝ssh
server installation :sudo yum -y install openssh.i686
client installation: sudo yum -y install openssh-clients
【2】我的任務:Hadoop@hadoop0(Client)免密碼登錄到 hadoop@hadoop1(Server)
2.1) 生成需要建立ssh的私鑰和公鑰(client操作)
Attention)
A1) ~/.ssh/ 目錄必須要是 700 的權限才行!
A2)一個要特別注意的就是那個 id_rsa 的檔案權限啦!他必須要是 -rw——- !否則在未來密鑰比對的過程當中,可能會被判定為危險而無法成功的以公私鑰成對檔案的機制來達成聯機喔。
(不過默認情況下,建立的文件都是符合以上要求的)
2.2)在server的家目錄上建立.ssh文件夾,訪問權限設為700(server操作)
2.3)將client的公鑰檔案數據上傳到服務器上(client操作)
2.4)將server的.ssh文件夾下面的 公鑰文件名改為 authorized_keys,且訪問權限改為 600 or 644(server操作)
2.5) client 免密碼登陸到 server
下面關於SSH相關的文章您也可能喜歡,不妨參考下:
Ubuntu 下配置 SSH服務全過程及問題解決 http://www.linuxidc.com/Linux/2011-09/42775.htm
Ubuntu 14.04 下安裝Samba 及SSH 服務端的方法 http://www.linuxidc.com/Linux/2015-01/111971.htm
SSH服務遠程訪問Linux服務器登陸慢 http://www.linuxidc.com/Linux/2011-08/39742.htm
提高Ubuntu的SSH登陸認證速度的辦法 http://www.linuxidc.com/Linux/2014-09/106810.htm
開啟SSH服務讓Android手機遠程訪問 Ubuntu 14.04 http://www.linuxidc.com/Linux/2014-09/106809.htm
如何為Linux系統中的SSH添加雙重認證 http://www.linuxidc.com/Linux/2014-08/105998.htm
在 Linux 中為非 SSH 用戶配置 SFTP 環境 http://www.linuxidc.com/Linux/2014-08/105865.htm
Linux 上SSH 服務的配置和管理 http://www.linuxidc.com/Linux/2014-06/103627.htm