SSH安全登陸原理:密碼登陸與公鑰登陸


 
SSH全稱(Secure SHell)是一種以安全性聞名的應用層網絡通信協議,用於計算機間的安全通信,是目前比較成熟的遠程登陸解決方案。
它提供兩種方法登陸:
1.密碼登陸
2.公鑰登陸
 
密碼登陸
 
1.客戶端填寫用戶名密碼發起遠程登陸
2.遠端服務器收到登陸請求后,會將本地的一個公鑰發送給客戶端
3.客戶端收到公鑰后,將自己的登陸信息用遠端服務器的公鑰加密,並將加密后的結果發送給遠端服務器。
4.遠端服務器收到登陸密文后,用本地私鑰解密,拿到登陸信息到數據庫比較。登陸信息無誤時,顯示登陸成功。有誤時就報錯。
5.登陸成功后,客戶端將會將遠端服務器的公鑰保存到本地,等下次再登陸時,客戶端檢測到收到的公鑰已經在本地存在(通常保存的目錄:$HOME/.ssh/known_hosts),就不會報警告了
 
提示:
在密碼登陸進行到第2步時,客戶端收到了服務器的公鑰,但是不確定這個公鑰到底是不是要訪問的目標服務器(也可能時中間攻擊者,發送過來的假公鑰)。此時會有提示
 # ssh user@host
The authenticity of host 'host (18.18.229.21)' can't be established.
RSA key fingerprint is 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d.
Are you sure you want to continue connecting (yes/no)?

如果確定這個公鑰就是目標服務器發過來的公鑰,就點擊yes,完成登陸。


公鑰登陸

公鑰登陸相對密碼登陸可以避免中間攻擊,同時也簡單很多
1.客戶端在本地生成一對公私鑰
2.將客戶端本地生成的公鑰手動添加到遠端服務器上
3.客戶端發起登陸請求到遠端服務器
4.遠端服務器收到請求后,會本地生成一串隨機字符,並將該隨機字符串發送給客戶端
5.客戶端收到遠端服務器的隨機字符串后,用本地私鑰加密,並將密文傳給遠端服務器
6.遠端服務器將收到的密文用保存的客戶端公鑰解密,並將解密結果與原隨機字符串對比,若一致的話證明客戶端可信,允許登陸。
提示:
客戶端生成公私鑰的步驟如下:
第一步:在本地機器上使用ssh-keygen產生公鑰私鑰對
執行命令:
ssh-keygen -t rsa -C "150321****@163.com"
-t :表示加密類型
-C :表示密鑰標示字符串
 
第二步:將公鑰id_rsa.pub添加到GITLab中的SSHKEY上
執行命令:
192:~ zhoufei$ cd ~/.ssh
192:.ssh zhoufei$ cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBQYZidTBczPtJ22xNJwl7Pq+yaZnualVS8juad3Oq+w6v5kgin9sW+xs7w9qrGmWHTkkOIPvckmqY7qobazI32YzI9IKFE2yGm51H1pXM4t9iEB0OCHdy1s1D2gB/bNI2ZJPhDjLOfbGO1Mj9B85n8WR0dy8eYSRBhUneiKor8ENnCvP1Sw4XOsEg6aDCMNRCzDY94Ar4ps41hcg34dNS2eMPsXMrTrz8fCv+IbBltUMDVdcoEFwb8VyYZ8ZspbY6zzRc1nZ5flhfGoB6Zjmmz2tSGCnNS16GdTpoGJd+UaiqrWNuocYWorPocbeMiIi+duZfvYVRNDCmaN0zUlwl****977961@qq.com

若添加后,無法正常拉取和提交,就本地查詢是否有客戶端身份信息

abcdeMacBook-Pro:.ssh zhoufei$ ssh-add -L
The agent has no identities.

解決方法:

abcdeMacBook-Pro:.ssh zhoufei$ ssh-add
Enter passphrase for /Users/zhoufei/.ssh/id_rsa:
Identity added: /Users/zhoufei/.ssh/id_rsa (/Users/zhoufei/.ssh/id_rsa)

 

 

 

 

 

 
 
 
 


免責聲明!

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



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