<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

SSH端口號是什么?SSH是如何工作的?

jf_uPRfTJDa ? 來源:5G通信 ? 2023-11-10 10:06 ? 次閱讀

SSH(Secure Shell,安全外殼)是一種網絡安全協議,通過加密和認證機制實現安全的訪問和文件傳輸等業務。傳統遠程登錄或文件傳輸方式,例如Telnet、FTP,使用明文傳輸數據,存在很多的安全隱患。隨著人們對網絡安全的重視,這些方式已經慢慢不被接受。SSH協議通過對網絡數據進行加密和驗證,在不安全的網絡環境中提供了安全的登錄和其他安全網絡服務。作為Telnet和其他不安全遠程shell協議的安全替代方案,目前SSH協議已經被全世界廣泛使用,大多數設備都支持SSH功能。

目錄

SSH端口號是什么?

SSH是如何工作的?

使用PuTTY和OpenSSHSSH密鑰

SSH端口號是什么?

當SSH應用于STelnet,SFTP以及SCP時,使用的默認SSH端口都是22。當SSH應用于NETCONF時,可以指定SSH端口是22或者830。SSH端口支持修改,更改后當前所有的連接都會斷開,SSH服務器開始偵聽新的端口。

SSH是如何工作的?

SSH由服務器和客戶端組成,在整個通信過程中,為建立安全的SSH通道,會經歷如下幾個階段:

連接建立

SSH服務器在指定的端口偵聽客戶端的連接請求,在客戶端向服務器發起連接請求后,雙方建立一個TCP連接。

版本協商

SSH協議目前存在SSH1.X(SSH2.0之前的版本)和SSH2.0版本。SSH2.0協議相比SSH1.X協議來說,在結構上做了擴展,可以支持更多的認證方法和密鑰交換方法,同時提高了服務能力。SSH服務器和客戶端通過協商確定最終使用的SSH版本號。

算法協商

SSH支持多種加密算法,雙方根據各自支持的算法,協商出最終用于產生會話密鑰的密鑰交換算法、用于數據信息加密的加密算法、用于進行數字簽名和認證的公鑰算法以及用于數據完整性保護的HMAC算法。

密鑰交換

服務器和客戶端通過密鑰交換算法,動態生成共享的會話密鑰和會話ID,建立加密通道。會話密鑰主要用于后續數據傳輸的加密,會話ID用于在認證過程中標識該SSH連接。

用戶認證

SSH客戶端向服務器端發起認證請求,服務器端對客戶端進行認證。SSH支持以下幾種認證方式:

密碼(password)認證:客戶端通過用戶名和密碼的方式進行認證,將加密后的用戶名和密碼發送給服務器,服務器解密后與本地保存的用戶名和密碼進行對比,并向客戶端返回認證成功或失敗的消息。

密鑰(publickey)認證:客戶端通過用戶名,公鑰以及公鑰算法等信息來與服務器進行認證。

password-publickey認證:指用戶需要同時滿足密碼認證和密鑰認證才能登錄。

all認證:只要滿足密碼認證和密鑰認證其中一種即可。

會話請求

認證通過后,SSH客戶端向服務器端發送會話請求,請求服務器提供某種類型的服務,即請求與服務器建立相應的會話。

會話交互

會話建立后,SSH服務器端和客戶端在該會話上進行數據信息的交互。

使用PuTTY和OpenSSH

PuTTY是Windows上經典的免費SSH連接工具,通常用于使用SSH協議遠程登錄設備,最新版本可以在PuTTY官網下載。

OpenSSH是SSH協議的開源實現,支持在Unix操作系統上運行,最新版本可以在OpenSSH官網下載。目前Windows10已經包含OpenSSH客戶端和服務器軟件,可在“設置—應用—應用與功能—可選功能”中搜索安裝。

SSH密鑰

對稱加密和非對稱加密

提高安全性的基本方式就是加密,加密算法通過密鑰將明文轉換為密文進行安全傳輸。SSH在工作過程中結合使用了對稱加密和非對稱加密兩種類型的算法,通過事先生成的SSH密鑰來保證信息傳輸的安全性。兩種加密算法的加解密過程見下圖。

64a067f4-7eee-11ee-939d-92fbcf53809c.png

對稱加密算法

64b158b6-7eee-11ee-939d-92fbcf53809c.png

非對稱加密算法

對稱加密算法使用同一個密鑰對數據進行加密和解密。SSH連接建立過程中生成的會話密鑰就是對稱密鑰,該對稱密鑰是由客戶端和服務器端基于共享的部分信息和各自的私有數據使用密鑰交換算法分別生成的。因為對稱加密算法加解密的速度很快,所以適用于傳輸大量數據的場景。

非對稱加密的發送和接收需要使用一對關聯的SSH密鑰,公鑰和私鑰。私鑰由生成的一方自己保管,公鑰可以發送給任何請求通信的其他人。發送方用收到的公鑰對自己的通信內容進行加密,只有接收方可以使用私鑰進行解密獲取通信內容。非對稱加密的私鑰不需要暴露在網絡中,安全性大大增加,但是加解密的速度比對稱密鑰慢得多。

SSH連接過程中的兩個階段使用了非對稱加密。一個是在密鑰交換階段,服務器和客戶端都生成了自己臨時的公鑰和私鑰,用于計算出同一個用于后續加密通信內容的會話密鑰。另外一個就是在用戶認證階段,利用只有匹配的私鑰可以唯一解密公鑰加密的內容這一特點,通過客戶端的公鑰私鑰對驗證客戶端的身份。

密鑰認證

SSH用戶認證最基本的兩種方式是密碼認證和密鑰認證。密碼認證是將自己的用戶名和密碼發送給服務器進行認證,這種方式比較簡單,且每次登錄都需要輸入用戶名和密碼。密鑰認證使用公鑰私鑰對進行身份驗證,實現安全的免密登錄,是一種廣泛使用且推薦的登錄方式。密鑰認證的基本原理是服務器端使用客戶端的公鑰對隨機內容加密,客戶端使用自己的私鑰解密并發送給服務器以證實自己的身份,具體的過程見下圖。

64bd1746-7eee-11ee-939d-92fbcf53809c.png

SSH密鑰認證登錄流程

在進行SSH連接之前,SSH客戶端需要先生成自己的公鑰私鑰對,并將自己的公鑰存放在SSH服務器上。

SSH客戶端發送登錄請求,SSH服務器就會根據請求中的用戶名等信息在本地搜索客戶端的公鑰,并用這個公鑰加密一個隨機數發送給客戶端。

客戶端使用自己的私鑰對返回信息進行解密,并發送給服務器。

服務器驗證客戶端解密的信息是否正確,如果正確則認證通過。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 服務器
    +關注

    關注

    12

    文章

    8183

    瀏覽量

    82732
  • 網絡安全
    +關注

    關注

    9

    文章

    2959

    瀏覽量

    58729
  • SSH
    SSH
    +關注

    關注

    0

    文章

    176

    瀏覽量

    16092
  • SSH協議
    +關注

    關注

    0

    文章

    4

    瀏覽量

    1592

原文標題:一口氣把 SSH 原理搞懂了

文章出處:【微信號:5G通信,微信公眾號:5G通信】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何通過已占用的端口號找到占用端口的容器?

    在一個已啟動了N多個容器Linux操作系統的宿主機上,新啟動一個映射到宿主機端口號為portM的容器時,提示端口被占用。
    的頭像 發表于 07-26 08:45 ?6846次閱讀
    如何通過已占用的<b class='flag-5'>端口號</b>找到占用<b class='flag-5'>端口</b>的容器?

    理解網絡端口號

    之前一直對網絡端口號不是很理解,今天在網上查找問題時找到一篇關于端口號的解釋??戳酥髮W絡號有點理解了。發出來免得以后忘了。嘻嘻!以下是我摘錄的文字: 首先了解一下TCP/IP協議中的端口指的是
    發表于 02-06 10:16

    請問zigbee的端口號和短地址有什么區別?端口號如何知道?

    本帖最后由 一只耳朵怪 于 2018-6-1 14:51 編輯 zigbee的端口號和短地址有啥子區別,短地址可以通過這個NLME_GetShortAddr()取得,端口號如何知道?
    發表于 06-01 05:57

    怎樣去解決復位端口號增長的問題

    如何清除Win7中被占用的COM口 串口,復位端口號?長期使用電腦,端口號會越用越多,如何解決此問題?WIN7 系統實際測試有用:1、打開注冊表編輯器:開始—運行:regedit2、進入
    發表于 01-13 06:36

    嵌入式學習——ElfBoard ELF1板卡 修改ssh默認端口號的方法

    root@ELF1:~# /etc/init.d/dropbear restart 3.ssh登錄 ELF 1開發板通過網線和電腦連接,打開putty,輸入網口ip,端口號修改成自己設置的,open打開串口,輸入用戶名即可登錄。
    發表于 10-26 13:26

    i.MX6ULL——ElfBoard ELF1板卡 修改ssh默認端口號的方法

    root@ELF1:~# /etc/init.d/dropbear restart 3.ssh登錄 ELF 1開發板通過網線和電腦連接,打開putty,輸入網口ip,端口號修改成自己設置的,open打開串口,輸入用戶名即可登錄。
    發表于 10-26 13:30

    SSH定義及應用

    學習完本課程,您應該能夠:了解SSH定義及應用。掌握SSH和SFTP工作原理,掌握SSH和SFTP應用,掌握SSH和SFTP的配置及維護。
    發表于 04-12 17:38 ?12次下載

    工業交換機端口號具有哪些結構特征

    假如按工業交換機的端口號構造來分,工業交換機大概可分成:固定不動端口號工業交換機和模塊化設計工業交換機二種不一樣的構造。實際上也有一種是二者兼具,那便是在出示基礎固定不動端口號的基本以上再配置一定的拓展擴展槽或控制模塊。下面詳細
    的頭像 發表于 12-10 16:15 ?1827次閱讀

    SSH第3部分:配置SSH反向隧道以減少暴露的端口

    的 Web 服務。您還可以使用 SSH 隧道創建跳轉框和網關,允許遠程連接到您的網絡,而無需暴露額外的網絡端點或端口。
    的頭像 發表于 01-03 09:45 ?1776次閱讀
    <b class='flag-5'>SSH</b>第3部分:配置<b class='flag-5'>SSH</b>反向隧道以減少暴露的<b class='flag-5'>端口</b>

    C#是如何獲取電腦中的端口號

    我們經常在使用一個串口軟件的時候,發現軟件中的端口號并不是普通的COM1,而是帶有硬件信息的。
    的頭像 發表于 02-22 15:30 ?2953次閱讀
    C#是如何獲取電腦中的<b class='flag-5'>端口號</b>

    如何修改Linux系統的SSH端口

    SSH 是一種網絡協議,用于與 Linux 系統進行遠程安全通信。默認情況下,SSH 服務使用端口 22。
    的頭像 發表于 03-20 16:46 ?1872次閱讀

    SSH端口號是什么?SSH原理詳解分析

    OpenSSH是SSH協議的開源實現,支持在Unix操作系統上運行,最新版本可以在OpenSSH官網下載。目前Windows10已經包含OpenSSH客戶端和服務器軟件,可在“設置—應用—應用與功能—可選功能”中搜索安裝。
    發表于 10-16 16:00 ?3237次閱讀
    <b class='flag-5'>SSH</b><b class='flag-5'>端口號</b>是什么?<b class='flag-5'>SSH</b>原理詳解分析

    NAS教程丨如何通過SSH訪問TNAS

    ,在Port欄輸入9222或你設置的端口號,點擊Open; 4、在彈出的Putty框中輸入NAS用戶名,按回車鍵; 5、輸
    的頭像 發表于 10-19 11:40 ?1173次閱讀
    NAS教程丨如何通過<b class='flag-5'>SSH</b>訪問TNAS

    zookeeper端口號在哪看

    Zookeeper是一個開源的分布式協調服務,它主要用于分布式系統中的配置管理、命名服務、分布式同步和分布式協調。在Zookeeper中,端口號是非常重要的一個參數,它決定了Zookeeper服務
    的頭像 發表于 12-04 10:36 ?1653次閱讀

    Ubuntu修改SSH默認端口指南

    修改SSH(Secure Shell)默認端口是一種增加系統安全性的方法,因為大多數攻擊都是針對默認端口22進行的。以下是在Ubuntu系統上修改SSH默認
    的頭像 發表于 12-21 17:27 ?507次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>