SSH密鑰管理的兩個(gè)方面

SSH 密鑰的作用是使你的機(jī)器和FedoraProject的CVS服務(wù)器之間能夠相互認(rèn)證。SSH的密鑰管理主要包括兩個(gè)方面生成公鑰/私鑰對(duì)以及公鑰的分發(fā)。下面將對(duì)這兩個(gè)密鑰管理工作分別進(jìn)行介紹。

(1)生成用戶自己的密鑰對(duì)

生成并分發(fā)用戶自己的密鑰有兩個(gè)好處:(1)可以防止“中間人”這種攻擊方式。(2)可以只用一個(gè)口令就登錄到所有用戶想登錄的服務(wù)器上。

用下面的命令可以生成密鑰:

ssh-keygen t 類型

在同一臺(tái)主機(jī)上同時(shí)有SSH1和SSH2的密鑰是沒有問題的,因?yàn)槊荑€是保存為不同的文件的。生成公鑰/私鑰對(duì)命令為:

    [root@MyRedHat ~]# ssh-keygen -t rsa

然后根據(jù)提示進(jìn)行操作。

SSH密鑰管理的兩個(gè)方面

生成公鑰/私鑰的保存路徑默認(rèn)情況下為:/home/[user]/.ssh/id_dsa(私人密鑰)和/home/[user]/.ssh/id_dsa.pub(公用密鑰)。現(xiàn)在用戶有一對(duì)密鑰了:公用密鑰要分發(fā)到所有用戶想用SSH登錄的遠(yuǎn)程主機(jī)上去;私人密鑰要好好地保管,以防止別人知道。用“l(fā)s -l ~/.ssh/identity”或“l(fā)s -l ~/.ssh/id_dsa”命令所顯示的文件的訪問權(quán)限必須是“-rw-------”。

如果用戶懷疑自己的密鑰已經(jīng)被別人知道了,應(yīng)該馬上生成一對(duì)新的密鑰。當(dāng)然,這樣做之后還需要重新分發(fā)一次公用密鑰,才能正常使用。

(2)分發(fā)公用密鑰

在每一個(gè)用戶需要用SSH連接的遠(yuǎn)程服務(wù)器上,都要在自己的主目錄下創(chuàng)建一個(gè)“.ssh”的子目錄,把用戶的公用密鑰“identity.pub”拷貝到這個(gè)目錄下并把它重命名為“authorized_keys”。然后執(zhí)行修改權(quán)限命令:

    chmod 644 .ssh/authorized_keys

這一步是必不可少的。因?yàn)?,如果除了用戶之外別人對(duì)“authorized_keys”文件也有寫的權(quán)限,那么如果遭到非法的破壞,SSH就不能正常工作。

如果用戶想從不同的計(jì)算機(jī)登錄到遠(yuǎn)程主機(jī),“authorized_keys”文件也可以有多個(gè)公用密鑰。在這種情況下,必須在新的計(jì)算機(jī)上重新生成一對(duì)密鑰,然后把生成的“identify.pub”文件拷貝并粘貼到遠(yuǎn)程主機(jī)的“authorized_keys”文件里。當(dāng)然在新的計(jì)算機(jī)上用戶必須有一個(gè)賬號(hào),而且密鑰是用口令保護(hù)的。有一點(diǎn)很重要,就是當(dāng)用戶取消了這個(gè)賬號(hào)之后,別忘了把這一對(duì)密鑰刪掉。

小知識(shí)之公鑰:

公鑰是與私鑰算法一起使用的密鑰對(duì)的非秘密一半。公鑰通常用于加密會(huì)話密鑰、驗(yàn)證數(shù)字簽名,或加密可以用相應(yīng)的私鑰解密的數(shù)據(jù)。公鑰和私鑰是通過一種算法得到的一個(gè)密鑰對(duì)(即一個(gè)公鑰和一個(gè)私鑰)其中的一個(gè)向外界公開,稱為公鑰;另一個(gè)自己保留,稱為私鑰。