ssh無密碼登錄設置


為啥要設置ssh無密碼登錄?

我們先來看一下分布式系統的一鍵啟動流程, 在matser機器上運行腳本,腳本檢測有多少slavers,然后通過ssh登錄到slavers,進入到相同的目錄(或者通過$XXX_HOME環境變量進入對應的目錄),然后啟動slave進程。

不同的機器密碼可能不一樣,這里如果ssh 還需要輸入密碼進行登錄的話,就不是一鍵啟動了。

因此,ssh無密碼登錄是必須設置的。

1)SSH無密碼原理

Master作為客戶端,要實現無密碼公鑰認證,連接到服務器Salvers(Workers)上時,需要在Master上生成一個密鑰對,包括一個公鑰和一個私鑰,而后將公鑰復制到所有的Slave上。當Master通過SSH連接Salve時,Salve就會生成一個隨機數並用Master的公鑰對隨機數進行加密,並發送給Master。Master收到加密數之后再用私鑰解密,並將解密數回傳給Slave,Slave確認解密數無誤之后就允許Master進行連接了。這就是一個公鑰認證過程,其間不需要用戶手工輸入密碼。

 

2)Master機器上設置無密碼登錄

a. Master節點利用ssh-keygen命令生成一個無密碼密鑰對。

在Master節點上執行以下命令:

運行后詢問其保存路徑時直接回車采用默認路徑。生成的密鑰對:id_rsa(私鑰)和id_rsa.pub(公鑰),默認存儲在"/home/用戶名/.ssh"目錄下。

ssh-keygen –t rsa –P ''
root@qp-zhang:/var/spark# ssh-keygen -t rsa -P ''
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
a0:40:48:9f:e7:47:ac:bc:d1:a2:32:1a:ef:24:11:37 root@qp-zhang
The key's randomart image is:
+--[ RSA 2048]----+
|.o.              |
|... . .          |
|. Eo ..o         |
| o o+.+.         |
|.   .* oS        |
| .  . =          |
|oo.. .           |
|.=o              |
|..o              |
+-----------------+
root@qp-zhang:/var/spark# cat /root/.ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDROi8G+KJw+ywkkMvVY/Dqmgb/AGl8sXuaR root@qp-zhang

PS:如果上述命令沒找到,那么你可能需要安裝一下ssh server了。以下是ubuntu安裝命令,其它系統可以找度娘

 sudo apt-get install openssh-server

 

 然后通過ssh-copy-id 命令,把id copy到salver機器上,這里需要輸入密碼(注意:同樣這里hostname如果不是域名之類的話,必須在hosts設置ip,以便能夠訪問)

root@qp-zhang:/var/spark# ssh-copy-id root@qpzhangdeMac-mini.local /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
Password:

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@qpzhangdeMac-mini.local'"
and check to make sure that only the key(s) you wanted were added.

 

root@qpzhangdeMac-mini:/private/var/spark $ls -all ~/.ssh/
total 8
drwxr-xr-x   3 root  wheel  102  3 23 15:25 .
drwxr-x---  10 root  wheel  340  3 23 15:14 ..
-rw-------   1 root  wheel  395  3 23 15:25 authorized_keys

 然后我們可以測試登錄:

root@qp-zhang:/var/spark# ssh 'root@qpzhangdeMac-mini.local'
Last login: Mon Mar 23 15:15:38 2015 from 10.60.215.93
qpzhangdeMac-mini:~ root# exit
logout

 到此,設置完畢。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM