自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

什么叫SSH?原理詳解,看這一篇就夠了!

網(wǎng)絡(luò) 無(wú)線技術(shù) 數(shù)據(jù)安全
SSH協(xié)議通過(guò)對(duì)網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行加密和驗(yàn)證,在不安全的網(wǎng)絡(luò)環(huán)境中提供了安全的登錄和其他安全網(wǎng)絡(luò)服務(wù)。

SSH(Secure Shell,安全外殼)是一種網(wǎng)絡(luò)安全協(xié)議,通過(guò)加密和認(rèn)證機(jī)制實(shí)現(xiàn)安全的訪問(wèn)和文件傳輸?shù)葮I(yè)務(wù)。傳統(tǒng)遠(yuǎn)程登錄或文件傳輸方式,例如Telnet、FTP,使用明文傳輸數(shù)據(jù),存在很多的安全隱患。

隨著人們對(duì)網(wǎng)絡(luò)安全的重視,這些方式已經(jīng)慢慢不被接受。SSH協(xié)議通過(guò)對(duì)網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行加密和驗(yàn)證,在不安全的網(wǎng)絡(luò)環(huán)境中提供了安全的登錄和其他安全網(wǎng)絡(luò)服務(wù)。作為T(mén)elnet和其他不安全遠(yuǎn)程shell協(xié)議的安全替代方案,目前SSH協(xié)議已經(jīng)被全世界廣泛使用,大多數(shù)設(shè)備都支持SSH功能。

SSH端口號(hào)是什么?

當(dāng)SSH應(yīng)用于STelnet,SFTP以及SCP時(shí),使用的默認(rèn)SSH端口都是22。當(dāng)SSH應(yīng)用于NETCONF時(shí),可以指定SSH端口是22或者830。SSH端口支持修改,更改后當(dāng)前所有的連接都會(huì)斷開(kāi),SSH服務(wù)器開(kāi)始偵聽(tīng)新的端口。

SSH是如何工作的?

SSH由服務(wù)器和客戶端組成,在整個(gè)通信過(guò)程中,為建立安全的SSH通道,會(huì)經(jīng)歷如下幾個(gè)階段:

(1) 連接建立

SSH服務(wù)器在指定的端口偵聽(tīng)客戶端的連接請(qǐng)求,在客戶端向服務(wù)器發(fā)起連接請(qǐng)求后,雙方建立一個(gè)TCP連接。

(2) 版本協(xié)商

SSH協(xié)議目前存在SSH1.X(SSH2.0之前的版本)和SSH2.0版本。SSH2.0協(xié)議相比SSH1.X協(xié)議來(lái)說(shuō),在結(jié)構(gòu)上做了擴(kuò)展,可以支持更多的認(rèn)證方法和密鑰交換方法,同時(shí)提高了服務(wù)能力。SSH服務(wù)器和客戶端通過(guò)協(xié)商確定最終使用的SSH版本號(hào)。

(3) 算法協(xié)商

SSH支持多種加密算法,雙方根據(jù)各自支持的算法,協(xié)商出最終用于產(chǎn)生會(huì)話密鑰的密鑰交換算法、用于數(shù)據(jù)信息加密的加密算法、用于進(jìn)行數(shù)字簽名和認(rèn)證的公鑰算法以及用于數(shù)據(jù)完整性保護(hù)的HMAC算法。

(4) 密鑰交換

服務(wù)器和客戶端通過(guò)密鑰交換算法,動(dòng)態(tài)生成共享的會(huì)話密鑰和會(huì)話ID,建立加密通道。會(huì)話密鑰主要用于后續(xù)數(shù)據(jù)傳輸?shù)募用?,?huì)話ID用于在認(rèn)證過(guò)程中標(biāo)識(shí)該SSH連接。

(5) 用戶認(rèn)證

SSH客戶端向服務(wù)器端發(fā)起認(rèn)證請(qǐng)求,服務(wù)器端對(duì)客戶端進(jìn)行認(rèn)證。SSH支持以下幾種認(rèn)證方式:

  • 密碼(password)認(rèn)證:客戶端通過(guò)用戶名和密碼的方式進(jìn)行認(rèn)證,將加密后的用戶名和密碼發(fā)送給服務(wù)器,服務(wù)器解密后與本地保存的用戶名和密碼進(jìn)行對(duì)比,并向客戶端返回認(rèn)證成功或失敗的消息。
  • 密鑰(publickey)認(rèn)證:客戶端通過(guò)用戶名,公鑰以及公鑰算法等信息來(lái)與服務(wù)器進(jìn)行認(rèn)證。
  • password-publickey認(rèn)證:指用戶需要同時(shí)滿足密碼認(rèn)證和密鑰認(rèn)證才能登錄。
  • all認(rèn)證:只要滿足密碼認(rèn)證和密鑰認(rèn)證其中一種即可。

(6) 會(huì)話請(qǐng)求

認(rèn)證通過(guò)后,SSH客戶端向服務(wù)器端發(fā)送會(huì)話請(qǐng)求,請(qǐng)求服務(wù)器提供某種類(lèi)型的服務(wù),即請(qǐng)求與服務(wù)器建立相應(yīng)的會(huì)話。

(7) 會(huì)話交互

會(huì)話建立后,SSH服務(wù)器端和客戶端在該會(huì)話上進(jìn)行數(shù)據(jù)信息的交互。

使用PuTTY和OpenSSH

PuTTY是Windows上經(jīng)典的免費(fèi)SSH連接工具,通常用于使用SSH協(xié)議遠(yuǎn)程登錄設(shè)備,最新版本可以在PuTTY官網(wǎng)下載。

OpenSSH是SSH協(xié)議的開(kāi)源實(shí)現(xiàn),支持在Unix操作系統(tǒng)上運(yùn)行,最新版本可以在OpenSSH官網(wǎng)下載。目前Windows10已經(jīng)包含OpenSSH客戶端和服務(wù)器軟件,可在“設(shè)置—應(yīng)用—應(yīng)用與功能—可選功能”中搜索安裝。

SSH密鑰

(1) 對(duì)稱加密和非對(duì)稱加密

提高安全性的基本方式就是加密,加密算法通過(guò)密鑰將明文轉(zhuǎn)換為密文進(jìn)行安全傳輸。SSH在工作過(guò)程中結(jié)合使用了對(duì)稱加密和非對(duì)稱加密兩種類(lèi)型的算法,通過(guò)事先生成的SSH密鑰來(lái)保證信息傳輸?shù)陌踩?。兩種加密算法的加解密過(guò)程見(jiàn)下圖。

對(duì)稱加密算法

非對(duì)稱加密算法

對(duì)稱加密算法使用同一個(gè)密鑰對(duì)數(shù)據(jù)進(jìn)行加密和解密。SSH連接建立過(guò)程中生成的會(huì)話密鑰就是對(duì)稱密鑰,該對(duì)稱密鑰是由客戶端和服務(wù)器端基于共享的部分信息和各自的私有數(shù)據(jù)使用密鑰交換算法分別生成的。因?yàn)閷?duì)稱加密算法加解密的速度很快,所以適用于傳輸大量數(shù)據(jù)的場(chǎng)景。

非對(duì)稱加密的發(fā)送和接收需要使用一對(duì)關(guān)聯(lián)的SSH密鑰,公鑰和私鑰。私鑰由生成的一方自己保管,公鑰可以發(fā)送給任何請(qǐng)求通信的其他人。發(fā)送方用收到的公鑰對(duì)自己的通信內(nèi)容進(jìn)行加密,只有接收方可以使用私鑰進(jìn)行解密獲取通信內(nèi)容。非對(duì)稱加密的私鑰不需要暴露在網(wǎng)絡(luò)中,安全性大大增加,但是加解密的速度比對(duì)稱密鑰慢得多。

SSH連接過(guò)程中的兩個(gè)階段使用了非對(duì)稱加密。一個(gè)是在密鑰交換階段,服務(wù)器和客戶端都生成了自己臨時(shí)的公鑰和私鑰,用于計(jì)算出同一個(gè)用于后續(xù)加密通信內(nèi)容的會(huì)話密鑰。另外一個(gè)就是在用戶認(rèn)證階段,利用只有匹配的私鑰可以唯一解密公鑰加密的內(nèi)容這一特點(diǎn),通過(guò)客戶端的公鑰私鑰對(duì)驗(yàn)證客戶端的身份。

(2) 密鑰認(rèn)證

SSH用戶認(rèn)證最基本的兩種方式是密碼認(rèn)證和密鑰認(rèn)證。密碼認(rèn)證是將自己的用戶名和密碼發(fā)送給服務(wù)器進(jìn)行認(rèn)證,這種方式比較簡(jiǎn)單,且每次登錄都需要輸入用戶名和密碼。密鑰認(rèn)證使用公鑰私鑰對(duì)進(jìn)行身份驗(yàn)證,實(shí)現(xiàn)安全的免密登錄,是一種廣泛使用且推薦的登錄方式。密鑰認(rèn)證的基本原理是服務(wù)器端使用客戶端的公鑰對(duì)隨機(jī)內(nèi)容加密,客戶端使用自己的私鑰解密并發(fā)送給服務(wù)器以證實(shí)自己的身份,具體的過(guò)程見(jiàn)下圖:

SSH密鑰認(rèn)證登錄流程:

  • 在進(jìn)行SSH連接之前,SSH客戶端需要先生成自己的公鑰私鑰對(duì),并將自己的公鑰存放在SSH服務(wù)器上。
  • SSH客戶端發(fā)送登錄請(qǐng)求,SSH服務(wù)器就會(huì)根據(jù)請(qǐng)求中的用戶名等信息在本地搜索客戶端的公鑰,并用這個(gè)公鑰加密一個(gè)隨機(jī)數(shù)發(fā)送給客戶端。
  • 客戶端使用自己的私鑰對(duì)返回信息進(jìn)行解密,并發(fā)送給服務(wù)器。
  • 服務(wù)器驗(yàn)證客戶端解密的信息是否正確,如果正確則認(rèn)證通過(guò)。
責(zé)任編輯:趙寧寧 來(lái)源: 網(wǎng)絡(luò)工程師阿龍
相關(guān)推薦

2023-11-06 07:21:13

內(nèi)存結(jié)構(gòu)Jvm

2023-02-10 09:04:27

2020-02-18 16:20:03

Redis ANSI C語(yǔ)言日志型

2022-06-20 09:01:23

Git插件項(xiàng)目

2022-08-01 11:33:09

用戶分析標(biāo)簽策略

2021-04-08 07:37:39

隊(duì)列數(shù)據(jù)結(jié)構(gòu)算法

2023-09-11 08:13:03

分布式跟蹤工具

2019-05-14 09:31:16

架構(gòu)整潔軟件編程范式

2018-05-22 08:24:50

PythonPyMongoMongoDB

2023-10-17 08:15:28

API前后端分離

2024-09-23 08:00:00

消息隊(duì)列MQ分布式系統(tǒng)

2020-07-03 08:21:57

Java集合框架

2017-03-11 22:19:09

深度學(xué)習(xí)

2022-04-07 10:39:21

反射Java安全

2023-11-18 09:30:42

模型AI

2020-08-17 09:25:51

Docker容器技術(shù)

2022-07-06 12:07:06

Python函數(shù)式編程

2019-04-01 10:43:59

Linux問(wèn)題故障

2022-05-19 08:28:19

索引數(shù)據(jù)庫(kù)

2020-10-21 14:12:02

Single Sign
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)