SSH的密鑰管理
SSH的密鑰管理主要包括兩個(gè)方面:生成公鑰/私鑰對(duì)以及公鑰的分發(fā),下面將對(duì)這兩個(gè)密鑰管理工作分別進(jìn)行介紹。
(1)生成用戶自己的密鑰對(duì)
生成并分發(fā)用戶自己的密鑰有兩個(gè)好處:
可以防止“中間人”這種攻擊方式。
可以只用一個(gè)口令就登錄到所有用戶想登錄的服務(wù)器上。
用下面的命令可以生成密鑰:
#ssh-keygen
如果遠(yuǎn)程主機(jī)使用的是SSH 2.x就要用這個(gè)命令:
#ssh-keygen –d
在同一臺(tái)主機(jī)上同時(shí)有SSH1和SSH2的密鑰是沒(méi)有問(wèn)題的,因?yàn)槊荑€是保存為不同的文件的。ssh-keygen命令運(yùn)行之后會(huì)顯示下面的信息:
Generating RSA keys:
Key generation complete.
Enter file in which to save the key (/home/[user]/.ssh/identity):
//此時(shí)按下回車鍵就行了
Created directory '/home/[user]/.ssh'.
Enter passphrase (empty for no passphrase): //輸入的口令不會(huì)顯示在屏幕上
//重新輸入一遍口令,如果忘記了口令就只能重新生成一次密鑰了
Enter same passphrase again:
//保存用戶的私人密鑰和公用密鑰
Your identification has been saved in /home/[user]/.ssh/identity.
Your public key has been saved in /home/[user]/.ssh/identity.pub.
The key fingerprint is: 2a:dc:71:2f:27:84:a2:e4:a1:1e:a9:63:e2:fa:a5:89 [user]@[local machine]
“ssh-keygen -d”做的是幾乎同樣的事,但是把一對(duì)密鑰存為(默認(rèn)情況下)“/home/[user] /.ssh/id_dsa”(私人密鑰)和“/home/[user]/.ssh/id_dsa.pub”(公用密鑰)。
現(xiàn)在用戶擁有一對(duì)密鑰:公用密鑰要分發(fā)到所有用戶想用ssh登錄的遠(yuǎn)程主機(jī)上去;私人密鑰要好好地保管防止別人知道私人密鑰。用“ls-l ~/.ssh/identity”或“ls-l ~/.ssh/id_dsa”所顯示的文件的訪問(wèn)權(quán)限必須是“-rw-------”。
(2)分發(fā)公用密鑰
在每一個(gè)用戶需要用SSH連接的遠(yuǎn)程服務(wù)器上,用戶要在自己的主目錄下創(chuàng)建一個(gè)“.ssh”的子目錄,把用戶的公用密鑰“identity.pub”拷貝到這個(gè)目錄下并把它重命名為“authorized_ keys”。然后執(zhí)行:
chmod 644 .ssh/authorized_keys
這一步是必不可少的。如果除了用戶之外別人對(duì)“authorized_keys”文件也有寫(xiě)的權(quán)限,SSH就不會(huì)工作。
如果用戶想從不同的計(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ì)密鑰刪掉。