SSH工作过程简介和SSH协议算法集简介
SSH簡(jiǎn)介
SSH是Secure Shell(安全外殼)的簡(jiǎn)稱,是一種在不安全的網(wǎng)絡(luò)環(huán)境中,通過加密機(jī)制和認(rèn)證機(jī)制,實(shí)現(xiàn)安全的遠(yuǎn)程訪問以及文件傳輸?shù)葮I(yè)務(wù)的網(wǎng)絡(luò)安全協(xié)議。
SSH協(xié)議采用了典型的客戶端/服務(wù)器模式,并基于TCP協(xié)議協(xié)商建立用于保護(hù)數(shù)據(jù)傳輸?shù)臅?huì)話通道。SSH協(xié)議有兩個(gè)版本,SSH1.x和SSH2.0(本文簡(jiǎn)稱SSH1和SSH2),兩者互不兼容。SSH2在性能和安全性方面比SSH1有所提高。
SSH工作過程
|
階段 |
說明 |
|
連接建立 |
SSH服務(wù)器在22號(hào)端口偵聽客戶端的連接請(qǐng)求,在客戶端向服務(wù)器端發(fā)起連接請(qǐng)求后,雙方建立一個(gè)TCP連接 |
|
版本協(xié)商 |
雙方通過版本協(xié)商確定最終使用的SSH版本號(hào) |
|
算法協(xié)商 |
SSH支持多種算法,雙方根據(jù)本端和對(duì)端支持的算法,協(xié)商出最終用于產(chǎn)生會(huì)話密鑰的密鑰交換算法、用于數(shù)據(jù)信息加密的加密算法、用于進(jìn)行數(shù)字簽名和認(rèn)證的公鑰算法,以及用于數(shù)據(jù)完整性保護(hù)的HMAC算法 |
|
密鑰交換 |
雙方通過DH(Diffie-Hellman Exchange)交換,動(dòng)態(tài)地生成用于保護(hù)數(shù)據(jù)傳輸?shù)臅?huì)話密鑰和用來標(biāo)識(shí)該SSH連接的會(huì)話ID,并完成客戶端對(duì)服務(wù)器端的身份認(rèn)證 |
|
用戶認(rèn)證 |
SSH客戶端向服務(wù)器端發(fā)起認(rèn)證請(qǐng)求,服務(wù)器端對(duì)客戶端進(jìn)行認(rèn)證 |
|
會(huì)話請(qǐng)求 |
認(rèn)證通過后,SSH客戶端向服務(wù)器端發(fā)送會(huì)話請(qǐng)求,請(qǐng)求服務(wù)器提供某種類型的服務(wù)(目前支持Stelnet、SFTP、SCP、NETCONF),即請(qǐng)求與服務(wù)器建立相應(yīng)的會(huì)話 |
|
會(huì)話交互 |
會(huì)話建立后,SSH服務(wù)器端和客戶端在該會(huì)話上進(jìn)行數(shù)據(jù)信息的交互 該階段,用戶在客戶端可以通過粘貼文本內(nèi)容的方式執(zhí)行命令,但文本會(huì)話不能超過2000字節(jié),且粘貼的命令最好是同一視圖下的命令,否則服務(wù)器可能無法正確執(zhí)行該命令。如果粘貼的文本會(huì)話超過2000字節(jié),可以采用將配置文件通過SFTP方式上傳到服務(wù)器,利用新的配置文件重新啟動(dòng)的方式執(zhí)行這些命令 |
本地密鑰對(duì)
功能簡(jiǎn)介
服務(wù)器端的DSA、ECDSA或RSA密鑰對(duì)有兩個(gè)用途,其一是用于在密鑰交換階段生成會(huì)話密鑰和會(huì)話ID,另外一個(gè)是客戶端用它來對(duì)連接的服務(wù)器進(jìn)行認(rèn)證。客戶端驗(yàn)證服務(wù)器身份時(shí),首先判斷服務(wù)器發(fā)送的公鑰與本地保存的服務(wù)器公鑰是否一致,確認(rèn)服務(wù)器公鑰正確后,再使用該公鑰對(duì)服務(wù)器發(fā)送的數(shù)字簽名進(jìn)行驗(yàn)證。
雖然一個(gè)客戶端只會(huì)采用DSA、ECDSA或RSA公鑰算法中的一種來認(rèn)證服務(wù)器,但是由于不同客戶端支持的公鑰算法不同,為了確保客戶端能夠成功登錄服務(wù)器,建議在服務(wù)器上同時(shí)生成DSA、ECDSA和RSA三種密鑰對(duì)。
生成RSA密鑰對(duì)時(shí),將同時(shí)生成兩個(gè)密鑰對(duì)——服務(wù)器密鑰對(duì)和主機(jī)密鑰對(duì)。SSH1利用SSH服務(wù)器端的服務(wù)器公鑰加密會(huì)話密鑰,以保證會(huì)話密鑰傳輸?shù)陌踩籗SH2通過DH算法在SSH服務(wù)器和SSH客戶端上生成會(huì)話密鑰,不需要傳輸會(huì)話密鑰,因此SSH2中沒有利用服務(wù)器密鑰對(duì)。
生成DSA密鑰對(duì)時(shí),只生成一個(gè)主機(jī)密鑰對(duì)。SSH1不支持DSA算法。
生成ECDSA密鑰對(duì)時(shí),只生成一個(gè)主機(jī)密鑰對(duì)
SSH協(xié)議算法集簡(jiǎn)介
設(shè)備作為服務(wù)器或者客戶端與對(duì)端建立Stelnet、SFTP、SCP會(huì)話過程中,將使用指定的算法優(yōu)先列表進(jìn)行協(xié)商。指定的算法包括:
密鑰交換算法
主機(jī)簽名算法
加密算法
MAC算法
協(xié)商過程中,客戶端采用的算法匹配順序?yàn)閮?yōu)先列表中各算法的配置順序,服務(wù)器根據(jù)客戶端的算法來匹配和協(xié)商。
H3C高端設(shè)備配置SSH2協(xié)議密鑰交換算法優(yōu)先列表
(1)進(jìn)入系統(tǒng)視圖。
system-view
(2)配置SSH2協(xié)議密鑰交換算法優(yōu)先列表。
(非FIPS模式)
ssh2 algorithm key-exchange{dh-group-exchange-sha1|dh-group1-sha1|dh-group14-sha1|ecdh-sha2-nistp256|ecdh-sha2-nistp384}*
缺省情況下,SSH2協(xié)議采用的缺省密鑰交換算法從高到底的優(yōu)先級(jí)列表為ecdh-sha2-nistp256、ecdh-sha2-nistp384、dh-group-exchange-sha1、dh-group14-sha1和dh-group1-sha1。
(FIPS模式)
ssh2 algorithm key-exchange{dh-group14-sha1|ecdh-sha2-nistp256|ecdh-sha2-nistp384}*
缺省情況下,SSH2協(xié)議采用的缺省密鑰交換算法從高到底的優(yōu)先級(jí)列表為ecdh-sha2-nistp256、ecdh-sha2-nistp384和dh-group14-sha1。
H3C高端設(shè)備配置SSH2協(xié)議主機(jī)簽名算法優(yōu)先列表
(1)進(jìn)入系統(tǒng)視圖。
system-view
(2)配置SSH2協(xié)議主機(jī)簽名算法優(yōu)先列表。
(非FIPS模式)
ssh2 algorithm public-key{dsa|ecdsa-sha2-nistp256|ecdsa-sha2-nistp384|rsa|x509v3-ecdsa-sha2-nistp256|x509v3-ecdsa-sha2-nistp384}*
缺省情況下,SSH2協(xié)議使用的缺省主機(jī)簽名算法從高到底的優(yōu)先級(jí)列表為x509v3-ecdsa-sha2-nistp256、x509v3-ecdsa-sha2-nistp384、ecdsa-sha2-nistp256、ecdsa-sha2-nistp384、rsa和dsa。
(FIPS模式)
ssh2 algorithm public-key{ecdsa-sha2-nistp256|ecdsa-sha2-nistp384|rsa|x509v3-ecdsa-sha2-nistp256|x509v3-ecdsa-sha2-nistp384}*
缺省情況下,SSH2協(xié)議使用的缺省主機(jī)簽名算法從高到底的優(yōu)先級(jí)列表為x509v3-ecdsa-sha2-nistp256、x509v3-ecdsa-sha2-nistp384、ecdsa-sha2-nistp256、ecdsa-sha2-nistp384和rsa。
H3C高端設(shè)備配置SSH2協(xié)議加密算法優(yōu)先列表
(1)進(jìn)入系統(tǒng)視圖。
system-view
(2)配置SSH2協(xié)議加密算法優(yōu)先列表。
(非FIPS模式)
ssh2 algorithm cipher{3des-cbc|aes128-cbc|aes128-ctr|aes128-gcm|aes192-ctr|aes256-cbc|aes256-ctr|aes256-gcm|des-cbc}*
缺省情況下,SSH2協(xié)議采用的缺省加密算法從高到底的優(yōu)先級(jí)列表為aes128-ctr、aes192-ctr、aes256-ctr、aes128-gcm、aes256-gcm、aes128-cbc、3des-cbc、aes256-cbc和des-cbc。
(FIPS模式)
ssh2 algorithm cipher{aes128-cbc|aes128-ctr|aes128-gcm|aes192-ctr|aes256-cbc|aes256-ctr|aes256-gcm}*
缺省情況下,SSH2協(xié)議采用的缺省加密算法從高到底的優(yōu)先級(jí)列表為aes128-ctr、aes192-ctr、aes256-ctr、aes128-gcm、aes256-gcm、aes128-cbc和aes256-cbc。
H3C高端設(shè)備配置SSH2協(xié)議MAC算法優(yōu)先列表
(1)進(jìn)入系統(tǒng)視圖。
system-view
(2)配置SSH2協(xié)議MAC算法優(yōu)先列表。
(非FIPS模式)
ssh2 algorithm mac{md5|md5-96|sha1|sha1-96|sha2-256|sha2-512}*
缺省情況下,SSH2協(xié)議使用的缺省MAC算法從高到底的優(yōu)先級(jí)列表為sha2-256、sha2-512、sha1、md5、sha1-96和md5-96。
(FIPS模式)
ssh2 algorithm mac{sha1|sha1-96|sha2-256|sha2-512}*
缺省情況下,SSH2協(xié)議使用的缺省MAC算法從高到底的優(yōu)先級(jí)列表為sha2-256、sha2-512、sha1和sha1-96。
總結(jié)
以上是生活随笔為你收集整理的SSH工作过程简介和SSH协议算法集简介的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CSS/css3奇淫技巧
- 下一篇: dvaJS Model之间的调用