1.非對稱加密與數字簽名
a.非對稱加密
在非對稱加密中有不同的密鑰:私鑰(private key)和公鑰(public key)销部。如果A和B進行通信扬蕊,A需要創(chuàng)建兩個密鑰:一個私鑰和一個公鑰亿昏,A把公鑰分發(fā)給社區(qū)仇参,公鑰不需要保密(但需要提供身份驗證和數據完整性,防止他人冒充A)卓箫。B向A發(fā)送信息是用A的公鑰加密明文,A收到后可用自己的密鑰解密.
________________________________________________________________________
| A | | B |
| | | |
| A的私鑰 | 不安全信道 | A的公鑰 |
|明文<---------密文 |<-----------------------------|密文<-----------明文 |
| | | |
|__________________|______________________________|____________________|
b.數字簽名
數字簽名用于驗證消息發(fā)送者信息限书,當A向B發(fā)送消息是虫蝶,B需要檢查發(fā)送者(A)的身份,這時A可以用自己的私鑰進行簽名倦西,B可用A的公鑰進行驗證能真。
2.對應ssh命令
a.登陸遠程主機
遠程登陸主機"host"時,在本地輸入命令(host_name可以是主機的ip地址):
$ ssh user_name@host_name
請求登陸host扰柠,這時會詢問是否接受host的公鑰粉铐,接收后會要求輸入你的登陸密碼,輸入的密碼會用host的公鑰進行加密耻矮,host接收加密后的登陸信息后秦躯,會用自己的私鑰解密,確認后會允許登陸裆装。這樣你的登陸信息就不會泄露給他人(即便被他人截獲登陸信息,但無host私鑰倡缠,所以無法獲得你的登陸信息)哨免。
b.生成自己的公鑰與私鑰
在本地輸入命令:
$ ssh-keygen
會在在目錄~/.ssh
中生成私鑰: id_rsa
, 公鑰: id_rsa.pub
。
c.上傳公鑰與免密碼登陸(數字簽名)
輸入命令上傳公鑰到host:
$ ssh-copy-id user_name@host_name
host會最后一次要求你輸入密碼確認身份昙沦,密碼正確后會將公鑰加到host的/home/user_name/.ssh/authorized_keys
文件中琢唾,此后你再次登陸時,host會向你發(fā)送信息盾饮,你用自己的私鑰進行數字簽名后發(fā)送給host采桃,host用你的公鑰進行驗證,驗證成功后會允許登陸丘损,不需要輸入密碼普办。