1. 程式人生 > >ssh 配置免密碼登陸

ssh 配置免密碼登陸

     SSH 為 Secure Shell 的縮寫,由 IETF 的網路工作小組(Network Working Group)所制定;SSH 為建立在應用層和傳輸層基礎上的安全協議。SSH 是目前較可靠,專為遠端登入會話和其他網路服務提供安全性的協議。利用 SSH 協議可以有效防止遠端管理過程中的資訊洩露問題。SSH最初是UNIX系統上的一個程式,後來又迅速擴充套件到其他操作平臺。SSH在正確使用時可彌補網路中的漏洞。SSH客戶端適用於多種平臺。幾乎所有UNIX平臺—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平臺,都可執行SSH。

    下面主要介紹一下SSH免密碼登陸的配置。

     在一臺機器上可以通過SSH命令向另一臺機器傳送命令,但是麻煩的是在傳送命令的過程中需要輸入密碼。當我們在配置hadoop叢集的時候,機器數量太多,多次輸入密碼顯得太麻煩。通過配置SSH可以免密碼登陸機器,對機器進行操作。

     實驗過程中啟動兩臺虛擬機器,IP分別為192.168.8.128和192.168.8.129

     在使用者目錄下存在一個資料夾.ssh,通過ls -la 可以看到,進入該資料夾 cd .ssh,在沒有配置過ssh的機器中,該資料夾中只存在一個檔案: known_hosts。該檔案記錄的該機器通過SSH連結其他機器的歷史記錄(機器),在給檔案中記錄的機器是在ssh過程中是不需要輸入yes確定的,但是需要輸入密碼。

     ssh 192.168.8.129  mkdir /SSHD   該命令的含義是在128上執行,可以在129的根目錄下建立資料夾,SSDH,需要輸入密碼。

     ssh-keygen -t rsa (四個回車)

    執行完這個命令後,會生成兩個檔案id_rsa(私鑰)、id_rsa.pub(公鑰)

     自己免密碼登陸:cp id_rsa.pub authorized-keys  檔案不存在的時候執行該命令,要是authorized-keys 存在會覆蓋該檔案,以前該檔案存在的內容會被覆蓋,一些其他的SSH配置資訊會丟失。authorized-keys中主要記錄的是其他機器或者本機器的公鑰,在SSH遠端登入的時候,如果authorized-keys中含有SSH機器的公鑰,就不需要輸入密碼。

將公鑰拷貝到要免登陸的機器上 
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys  檔案存在,追加到authorized_keys檔案中
或ssh-copy-id 192.168.8.129 將當前機器生成的公鑰拷貝給129,方便129免密碼登陸