0. SSH簡(jiǎn)述
SSH使用非對(duì)稱(chēng)加密技術(shù)(公鑰認(rèn)證),所謂的公鑰認(rèn)證,實(shí)際上是使用一對(duì)加密字符串礼搁,一個(gè)稱(chēng)為公鑰(public key),任何人都可以看到其內(nèi)容目尖,用于加密馒吴;另一個(gè)稱(chēng)為密鑰(private key),只有擁有者才能看到瑟曲,用于解密饮戳。通過(guò)公鑰加密過(guò)的密文使用密鑰可以輕松解密,但根據(jù)公鑰來(lái)猜測(cè)密鑰卻十分困難洞拨。
ssh 的公鑰認(rèn)證就是使用了這一特性扯罐。服務(wù)器和客戶(hù)端都各自擁有自己的公鑰和密鑰。為了說(shuō)明方便烦衣,以下將使用這些符號(hào)歹河。
- Ac 客戶(hù)端公鑰
- Bc 客戶(hù)端密鑰
- As 服務(wù)器公鑰
- Bs 服務(wù)器密鑰
1. 生成密鑰對(duì)
生成密鑰對(duì)主要在客戶(hù)端進(jìn)行, 密鑰成對(duì)生成花吟,公鑰用于加密信息秸歧,可以公開(kāi)在網(wǎng)絡(luò)上傳輸,私鑰用于解密信息示辈,只存在于本機(jī)寥茫。在Xshell中使用Tools > User Key Manager中管理客戶(hù)端密鑰對(duì)。通過(guò)User Key Generation Wizard可以快速生成密鑰對(duì)矾麻。
這一步中我們生成了客戶(hù)端私鑰纱耻,設(shè)置了名稱(chēng)和密碼芭梯。
點(diǎn)擊下一步生成客戶(hù)端私鑰,可以直接復(fù)制或者保存到文件弄喘。
2. 客戶(hù)端發(fā)送公鑰到服務(wù)器端
一般情況下玖喘,直接復(fù)制客戶(hù)端公鑰字符串到服務(wù)器中$HOME/.ssh/authorized_keys
文件,如果沒(méi)有相關(guān)目錄需要自行創(chuàng)建蘑志。
不同用戶(hù)的$HOME是不同的累奈,請(qǐng)使用cat $HOME
查看。
3. 服務(wù)端發(fā)送公鑰到客戶(hù)端
在Xshell中新建連接急但,填入host后切換到Authentication選項(xiàng)卡澎媒,填寫(xiě)相關(guān)內(nèi)容。
填寫(xiě)完畢之后連接到服務(wù)器波桩,這時(shí)服務(wù)器就會(huì)把服務(wù)器公鑰發(fā)送給客戶(hù)端戒努,可以在Tools > Host Key Manager查看新添加的服務(wù)器公鑰。
4. 開(kāi)始會(huì)話(huà)
現(xiàn)在服務(wù)器具有客戶(hù)端公鑰镐躲,當(dāng)它發(fā)送消息給客戶(hù)端時(shí)储玫,可以使用客戶(hù)端公鑰進(jìn)行加密,客戶(hù)端收到消息后通過(guò)本地的客戶(hù)端私鑰進(jìn)行解密萤皂。
而且客戶(hù)端具有服務(wù)端公鑰撒穷,當(dāng)客戶(hù)端發(fā)送消息時(shí),使用服務(wù)端公鑰進(jìn)行加密裆熙,服務(wù)器收到消息后使用服務(wù)端私鑰進(jìn)行解密端礼。