28-SSH操作
本章節下載 (9.34 MB)
目 錄
1.5.1 交換機充當SSH服務器並采用password認證時的配置舉例
1.5.2 交換機充當SSH服務器並采用公鑰認證時的配置舉例
1.5.3 交換機充當SSH客戶端並采用password認證時的配置舉例
1.5.4 交換機充當SSH客戶端並采用公鑰認證時的配置舉例
1.5.5 交換機充當SSH客戶端並采用不支持首次認證時的配置舉例
SSH(Secure Shell,安全外殼)是一個用於在非安全網絡中提供安全的遠程登錄以及其他安全網絡服務的協議。當用戶通過非安全的網絡環境遠程登錄到交換機時,每次發送數據前,SSH都會自動對數據進行加密,當數據到達目的地時,SSH自動對加密數據進行解密,以此提供安全的信息保障。除此之外,SSH還提供強大的認證功能,以保護交換機不受諸如DNS和IP欺騙等攻擊。
SSH采用客戶端—服務器模式。設備支持SSH服務器功能,可以接受多個SSH客戶端的連接。同時,設備還支持作為SSH客戶端,允許與支持SSH服務器功能的設備建立SSH連接,從而實現從本地設備通過SSH登錄到遠程設備上。
此外,SSH還支持其他功能,比如可以對傳輸的數據進行壓縮,從而加快傳輸的速度。又可以代替Telnet,或為FTP提供安全的“通道”。
注意:
l 目前,設備作為SSH服務器時,支持SSH2和SSH1兩個版本;設備作為SSH客戶端時,隻支持SSH2版本。
l 如無特殊說明,文中的SSH均指SSH2。
加密和解密過程中使用的一組變換規則稱為算法。未加密的信息稱為明文,加密後的信息稱為密文。加密和解密都是在密鑰的控製下進行的。密鑰是一組特定的字符串,是控製明文和密文變換的唯一參數,起到“鑰匙”的作用。通過加密變換操作,可以將明文變換為密文,通過解密變換操作,將密文恢複為明文。如圖1-1所示。
基於密鑰的算法通常有兩類:對稱算法和非對稱密鑰算法。
非對稱密鑰算法是指通信的每一端都存在一對密鑰,即一個私鑰,一個公鑰。公鑰是公開的,私鑰隻有合法者擁有,從公鑰很難分析出私鑰。
非對稱密鑰算法可以用於加密,也就是用公鑰對報文進行加密,然後由擁有私鑰的合法者使用私鑰對數據進行解密,這樣保證數據的機密性。
非對稱密鑰算法還可以用於簽名,比如用戶1使用自己的私鑰對數據進行簽名,然後發給用戶2,用戶2可以用用戶1的公鑰驗證簽名,如果簽名是正確的,那麼就能夠確認該數據來源於用戶1。
RSA(Rivest Shamir Adleman)和DSA(Digital Signature Algorithm,數字簽名算法)都是非對稱密鑰算法,RSA既可以用於加密,又可以用於簽名,而DSA隻用於簽名。
& 說明:
目前SSH支持RSA和DSA兩種非對稱密鑰算法。
在整個通訊過程中,為實現SSH認證的安全連接,服務器端與客戶端要經曆如下五個階段:
表1-1 SSH服務器端與客戶端建立連接的五個階段
過程 |
說明 |
詳細內容 |
版本號協商階段 |
SSH目前包括SSH1和SSH2兩個版本,雙方通過版本協商確定使用的版本 |
|
密鑰和算法協商階段 |
SSH支持多種加密算法,雙方根據本端和對端支持的算法,協商出最終使用的算法 |
|
認證階段 |
SSH客戶端向服務器端發起認證請求,服務器端對客戶端進行認證 |
|
會話請求階段 |
認證通過後,客戶端向服務器端發送會話請求 |
|
交互會話階段 |
會話請求通過後,服務器端和客戶端進行信息的交互 |
具體步驟如下:
l
服務器端打開端口22,等待客戶端連接。
l
客戶端向服務器端發起TCP初始連接請求,TCP連接建立後,服務器端向客戶端發送第一個報文,包括版本標誌字符串,格式為“SSH-<主協議版本號>.<次協議版本號>-<軟件版本號>”,協議版本號由主協議版本號和次協議版本號組成,軟件版本號主要是為調試使用。
l
客戶端收到報文後,解析該數據包,如果服務器端的協議版本號比自身的低,且能支持服務器端的版本,就使用服務器端的低版本協議號,否則使用自身的協議版本號。
l
客戶端回應服務器端一個報文,包含了客戶端決定使用的協議版本號。服務器端比較客戶端發來的版本號,決定是否能同客戶端一起工作。
l
如果協商成功,則進入密鑰和算法協商階段,否則服務器端斷開TCP連接。
& 說明:
上述報文都是采用明文方式傳輸的。
具體步驟如下:
l
服務器端和客戶端分別發送算法協商報文給對端,報文中包含自己支持的公鑰算法列表、加密算法列表、MAC(Message Authentication Code,消息驗證碼)算法列表、壓縮算法列表等。
l
服務器端和客戶端根據對端和本端支持的算法列表得出最終使用的算法。
l
服務器端和客戶端利用DH交換(Diffie-Hellman Exchange)算法、主機密鑰對等參數,生成會話密鑰和會話ID。
通過以上步驟,服務器端和客戶端就取得了相同的會話密鑰。對於後續傳輸的數據,兩端都會使用會話密鑰進行加密和解密,保證了數據傳輸的安全性。
具體步驟如下:
l
客戶端向服務器端發送認證請求,認證請求中包含用戶名、認證方法、與該認證方法相關的內容(如:password認證時,內容為密碼)。
l
服務器端對客戶端進行認證,如果認證失敗,則向客戶端發送認證失敗消息,其中包含可以再次認證的方法列表。
l
客戶端從認證方法列表中選取一種認證方法再次進行認證。
l
該過程反複進行,直到認證成功或者認證次數達到上限,服務器關閉連接為止。
SSH提供兩種認證方法:
l
password認證:客戶端向服務器發出password認證請求,將用戶名和密碼加密後發送給服務器;服務器將該信息解密後得到用戶名和密碼的明文,與設備上保存的用戶名和密碼進行比較,並返回認證成功或失敗的消息。
l
公鑰認證:采用數字簽名的方法來認證客戶端。目前,設備上可以利用RSA和DSA兩種公共密鑰算法實現數字簽名。客戶端發送包含用戶名、公共密鑰和公共密鑰算法的公鑰認證請求給服務器端。服務器對公鑰進行合法性檢查,如果不合法,則直接發送失敗消息;否則,服務器利用數字簽名對客戶端進行認證,並返回認證成功或失敗的消息。
認證通過後,客戶端向服務器端發送會話請求。服務器端等待並處理客戶端的請求。在這個階段,客戶端的請求被成功處理後,服務器會回應SSH_SMSG_SUCCESS包,SSH進入交互會話階段;否則回應SSH_SMSG_FAILURE包,表示服務器處理請求失敗或者不能識別請求。
會話請求成功後,連接進入交互會話階段。在這個模式下,數據被雙向傳送。客戶端將要執行的命令加密後傳給服務器端,服務器端接收到報文,解密後執行該命令,將執行的結果加密發還給客戶端,客戶端將接收到的結果解密後顯示到終端上。
在SSH服務器端進行必要的配置,以使SSH客戶端能夠正常訪問SSH服務器端。
表1-2 SSH服務器端配置任務簡介
配置任務 |
說明 |
詳細配置 |
|
配置SSH服務器端 |
配置所在用戶界麵支持的協議 |
必選 |
|
生成或銷毀密鑰對 |
必選 |
||
導出RSA或DSA密鑰 |
可選 |
||
創建SSH用戶並指定認證方式 |
必選 |
||
配置SSH用戶使用的服務類型 |
可選 |
||
配置服務器上的SSH管理功能 |
可選 |
||
在服務器端配置客戶端的公鑰 |
l 當采用Password認證方式時,不選 l 當采用公鑰認證方式時,必選 |
||
為SSH用戶分配公共密鑰 |
l 當采用Password認證方式時,不選 l
當采用公鑰認證方式時,必選 |
||
指定業務報文源IP或源接口 |
可選 |
在SSH服務器端必須設置係統支持SSH遠程登錄協議。配置結果在下次登錄請求時生效。
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入單一或多個用戶界麵視圖 |
user-interface [ type ] first-number [ last-number
] |
- |
配置登錄用戶界麵的認證為scheme方式 |
authentication-mode scheme [ command-authorization ] |
必選 缺省情況下,用戶界麵認證為password方式 |
配置所在用戶界麵支持的協議 |
protocol inbound { all |ssh | telnet } |
可選 缺省情況下,係統支持所有的協議,即支持Telnet和SSH |
注意:
l 如果在該用戶界麵上配置的協議支持SSH,為確保SSH用戶登錄成功,請務必配置登錄用戶界麵的認證方式為authentication-mode scheme(采用AAA認證)。
l 如果用戶配置了認證方式為authentication-mode password或authentication-mode none,則無法配置protocol inbound ssh;否則,如果配置了protocol inbound ssh,則認證方式無法配置為authentication-mode password或authentication-mode none。
該配置任務用來生成或者銷毀密鑰對,生成服務器端的RSA和DSA密鑰對是完成SSH登錄的必要操作。生成密鑰對時,係統會提示您輸入密鑰的長度,密鑰的最小長度為512位,最大長度為2048位。如果此時已經有了密鑰對,係統提示是否替換原有密鑰對。
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
生成RSA密鑰對 |
rsa local-key-pair create |
必選,二者選其一 缺省情況下,沒有生成RSA密鑰對 |
public-key local create rsa |
||
銷毀RSA密鑰對 |
rsa local-key-pair destroy |
可選,二者選其一 該命令用來銷毀已生成的RSA密鑰對 |
public-key local destroy rsa |
||
生成DSA密鑰對 |
public-key local create dsa |
必選 缺省情況下,沒有生成DSA密鑰對 |
銷毀DSA密鑰對 |
public-key local destroy dsa |
可選 該命令用來銷毀已生成的DSA密鑰對 |
& 說明:
l 生成RSA密鑰對後,當交換機工作在兼容SSH1模式下時,使用display rsa local-key-pair public命令或display public-key local rsa public命令時會顯示兩個公鑰,包括H3C_Host和H3C_Server。當交換機工作在SSH2模式時,使用display rsa local-key-pair public命令或display public-key local rsa public命令隻顯示一個公鑰,即H3C_Host。
l 生成密鑰對的命令隻需執行一遍,交換機重啟後不必再次執行。
l 由於某些第三方軟件(如:WinSCP)要求密鑰的長度在768位以上(包括768位),因此建議生成RSA或DSA密鑰對時,生成768位以上的密鑰對。
對於已經生成的RSA或DSA密鑰對,可以根據指定格式在屏幕上顯示主機公鑰或導出主機公鑰到指定文件,從而為在遠端配置主機公鑰做準備。
表1-5 導出RSA公鑰
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
根據指定格式在屏幕上顯示RSA主機公鑰或導出主機公鑰到指定文件 |
public-key local export rsa { openssh | ssh1 | ssh2 } [ filnename ] |
必選 |
表1-6 導出DSA公鑰
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
根據指定格式在屏幕上顯示DSA主機公鑰或導出主機公鑰到指定文件 |
public-key local export dsa
{ openssh | ssh2 } [ filnename ] |
必選 |
& 說明:
對於DSA主機公鑰,可指定的格式隻有SSH2和OpenSSH兩種。對於RSA主機公鑰,則可指定SSH1,SSH2,OpenSSH三種格式。
該配置任務用來創建SSH用戶並指定認證方式。對於新創建的用戶,必須指定其認證方式,否則將無法登錄。
表1-7 創建SSH用戶並指定認證方式
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
指定缺省的認證方式,所有創建的SSH用戶都使用這個認證方式 |
ssh authentication-type default { all | password |
password-publickey | publickey | rsa } |
兩者必選其一 缺省情況下,係統沒有創建SSH用戶,也不指定認證方式 注意:當兩條命令同時配置,且認證方式不同時,SSH用戶的認證方式以ssh user authentication-type命令的配置為準 |
ssh user username |
||
創建SSH用戶,並為該用戶配置認證方式 |
ssh user username authentication-type { all | password | password-publickey
| publickey | rsa } |
注意:
l 配置password認證時,username應與AAA中定義的有效用戶名一致;配置公鑰認證時,username就是SSH本地用戶名,不需要在AAA中配置本地用戶。有關AAA的相關內容請參見“AAA”。
l 如果用戶配置的缺省認證方式為password,並且采用AAA本地認證,則還需要使用local-user命令在本地數據庫中添加用戶名和密碼。在這種情況下,可以直接使用local-user命令配置的用戶名和密碼(配置service-type為ssh)登錄SSH服務器,省略掉ssh user命令的配置。
l 如果用戶配置的缺省認證方式為password,並且采用遠程認證,如RADIUS認證,則可以直接使用遠程服務器上的用戶名和密碼登錄SSH服務器,省略掉ssh user命令的配置。
l publickey和rsa參數都表示公鑰認證,並且實現方式一致。
l 如果配置為公鑰認證方式,則SSH用戶登錄服務器後可以訪問的命令級別可通過user privilege level命令來配置,且所有使用公鑰認證方式的用戶可訪問的命令級別相同。
l 如果配置為password認證方式,則SSH用戶登錄服務器後可以訪問的命令級別由AAA來授權,使用password認證方式的不同用戶,能夠訪問的命令級別可以不同。
表1-8 配置SSH用戶使用的服務類型
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置用戶可以使用的服務類型 |
ssh user username service-type { stelnet | sftp | all } |
可選 缺省情況下,用戶可以使用的服務類型為stelnet |
注意:
使用ssh user service-type命令配置用戶可以使用的SSH服務類型時,如果該用戶不存在,則係統會自動創建一個SSH用戶。但此SSH用戶無法登錄成功,必須為此用戶指定認證方式。
SSH服務器上提供了一係列管理功能,通過設置這些功能,可以防止惡意猜測密碼等非法行為,更大限度地保證用戶SSH連接的安全性。
表1-9 配置服務器上的SSH管理功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
設置SSH認證超時時間 |
ssh server timeout seconds |
可選 缺省情況下,認證超時時間為60秒 |
設置SSH驗證重試次數 |
ssh server authentication-retries times |
可選 缺省情況下,SSH驗證重試次數為3次 |
設置RSA服務器密鑰的更新時間 |
ssh server rekey-interval
hours |
可選 缺省情況下,係統不更新RSA服務器密鑰 |
設定服務器端兼容SSH1.x版本的客戶端 |
ssh server compatible-ssh1x enable |
可選 缺省情況下,服務器端兼容SSH1.x版本的客戶端 |
配置登錄交換機的顯示信息 |
header shell text |
可選 缺省情況下,沒有配置顯示信息 |
注意:
l 配置登錄交換機的顯示信息,隻有當設置用戶可以使用的服務類型為stelnet時才可成功。有關配置用戶使用的服務類型請參見“1.2.6 配置SSH用戶使用的服務類型”。
l 有關header命令的具體內容請參見“登錄交換機”中的登錄以太網交換機命令部分。
& 說明:
如果設備上對SSH用戶配置的認證方式為password認證時,不需要配置客戶端的公鑰。
SSH用戶采用公鑰認證時,需要在服務器端配置客戶端的RSA或DSA主機公鑰,以便當客戶端登錄服務器端時,對客戶端進行相應的驗證。
可以通過手工配置和從公鑰文件中導入兩種方式來配置客戶端的主機公鑰:
l
手工配置方式:手工配置客戶端的主機公鑰時,可以采用拷貝粘貼的方式將客戶端的主機公鑰配置到服務器端;
l
從公鑰文件中導入方式:從公鑰文件中導入客戶端的主機公鑰時,係統會自動對由客戶端生成的公鑰文件進行格式轉換,並實現客戶端公鑰的配置。這種方式需要客戶端事先將密鑰的公鑰文件通過FTP/TFTP方式上傳到服務器端。
表1-10 手工配置客戶端的公鑰
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入公共密鑰視圖 |
public-key peer keyname |
必選 |
進入公共密鑰編輯視圖 |
public-key-code begin |
- |
配置客戶端的公鑰 |
直接輸入公鑰內容 |
在輸入密鑰數據時,字符之間可以有空格,也可以按回車鍵繼續輸入數據,所配置的公鑰必須是按公鑰格式編碼的十六進製字符串 |
退出公共密鑰編輯視圖,退回到公共密鑰視圖 |
public-key-code end |
- 退出視圖時,係統自動保存配置的公鑰密鑰 |
退出公共密鑰視圖,退回到係統視圖 |
peer-public-key end |
- |
表1-11 從公鑰文件中導入客戶端的公鑰
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
從公鑰文件中導入SSH用戶的公鑰 |
public-key peer keyname import sshkey filename |
必選 |
在服務器端配置客戶端的RSA主機公鑰時,還可采用以下配置方式,如表1-12和表1-13所示。
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入公共密鑰視圖 |
rsa peer-public-key keyname |
必選 |
進入公共密鑰編輯視圖 |
public-key-code begin |
- |
配置客戶端的RSA公鑰 |
直接輸入RSA公鑰內容 |
在輸入密鑰數據時,字符之間可以有空格,也可以按回車鍵繼續輸入數據,所配置的公鑰必須是按公鑰格式編碼的十六進製字符串 |
退出公共密鑰編輯視圖,退回到公共密鑰視圖 |
public-key-code end |
- 退出視圖時,保存輸入的公鑰數據 |
退出公共密鑰視圖,退回到係統視圖 |
peer-public-key end |
- |
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
從公鑰文件中導入SSH用戶的RSA公鑰 |
rsa peer-public-key keyname import sshkey filename |
必選 |
& 說明:
由於通過display rsa local-key-pair public命令顯示的,或通過SSHKEY工具轉換後的主機公鑰數據不包含密鑰類型等信息,所以不能直接作為參數手工配置到public-key peer命令中。display public-key local rsa public命令顯示的主機公鑰數據也不能手工配置到rsa peer-public-key命令中。
注意:
如果設備上對SSH用戶配置的認證方式為password認證時,不需要為SSH用戶分配公鑰。
采用公鑰認證時,需要在服務器端為SSH用戶指定對應客戶端的公鑰。當客戶端登錄服務器時,服務器端就會根據指定SSH用戶對應的公鑰對客戶端進行認證。
表1-14 為SSH用戶分配公鑰
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
為SSH用戶分配公鑰 |
ssh user username assign { publickey | rsa-key } keyname |
必選 多次分配公鑰時,則以最後一次分配的公鑰為準 |
& 說明:
publickey和rsa-key參數都表示公鑰,並且實現方式一致。
用戶可以通過以下配置,對SSH服務器指定業務報文源IP地址或者源接口,這樣SSH服務器可以使用指定源IP地址或者源接口,作為SSH服務器的目的地址供SSH用戶訪問,增加了業務的可管理性。
表1-15 指定業務報文源IP地址或源接口
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
為SSH服務器端指定源IP地址 |
ssh-server source-ip ip-address |
必選 缺省情況下,以係統決定的本設備地址供SSH用戶訪問 |
為SSH服務器端指定源接口 |
ssh-server source-interface interface-type interface-number |
必選 缺省情況下,以係統決定的本設備地址供SSH用戶訪問 |
SSH客戶端可采用SSH客戶端軟件或支持SSH2的交換機訪問SSH服務器。
表1-16 SSH客戶端配置任務簡介
配置任務 |
說明 |
詳細配置 |
|
SSH客戶端配置 |
采用SSH客戶端軟件 |
二者必選其一 |
|
采用支持SSH2的交換機作為客戶端 |
SSH客戶端軟件有很多,例如PuTTY、OpenSSH等。SSH客戶端要與服務器建立連接,需要做如下配置:
表1-17 采用客戶端軟件時的配置任務簡介
配置任務 |
說明 |
詳細配置 |
生成客戶端密鑰 |
l 當采用Password認證方式時,不選 l 當采用公鑰認證方式時,必選 |
|
指定服務器IP地址 |
必選 |
|
選擇遠程連接協議為SSH |
必選 |
|
選擇SSH版本 |
必選 |
|
以RSA或DSA方式打開SSH連接 |
l 當采用Password認證方式時,不選 l
當采用公鑰認證方式時,必選 |
|
以口令方式打開SSH連接 |
l 當采用Password認證方式時,必選 l
當采用公鑰認證方式時,不選 |
& 說明:
l 選擇遠程連接協議為SSH。通常客戶端可以支持多種遠程連接協議,如Telnet、Rlogin、SSH等。要建立SSH連接,必須選擇遠程連接協議為SSH。
l 選擇SSH版本。由於設備目前支持的版本是SSH服務器2.0版本,客戶端可以選擇2.0或2.0以下版本。
l 指定私鑰文件。如果在服務器端配置了SSH用戶采用公鑰認證,並為SSH用戶指定了公鑰,就必須在客戶端指定與公鑰對應的私鑰文件。RSA或DSA密鑰對是由客戶端軟件附帶的工具生成的。
下麵以客戶端軟件PuTTY、PuTTYGen和SSHKEY為例,說明SSH客戶端的配置方法。
運行PuTTYGen.exe,選擇要生成的密鑰對。在參數欄中選擇“SSH-2 RSA”或“SSH-2 DSA”,點擊<Generate>,產生客戶端密鑰對。
圖1-2 生成客戶端密鑰(1)
在產生密鑰對的過程中需不停的移動鼠標,鼠標移動僅限於下圖藍色框中除綠色標記進程條外的地方,否則進程條的顯示會不動,密鑰對將停止產生,見圖1-3。
密鑰對產生後,點擊<save public key>,輸入存儲公鑰的文件名public,點擊保存。
圖1-4 生成客戶端密鑰(3)
同理,點擊<save private key>存儲私鑰,彈出警告框,提醒是否保存沒做任何保護措施的私鑰,點擊<Yes>,輸入私鑰文件名即可,此處為private,點擊保存。
運行SSHKEY.exe,點擊<Browse>,選擇公鑰文件public。然後點擊<Convert>,即可生成PKCS編碼格式的RSA公鑰數據。
圖1-6 生成客戶端密鑰(5)
打開PuTTY.exe程序,出現如下客戶端配置界麵。
圖1-7 SSH客戶端配置界麵(1)
在“Host Name(or IP address)”文本框中輸入SSH服務器的IP地址(要求SSH服務器的IP地址與SSH客戶端主機的路由可達)。
如圖1-7,在“Protocol”選擇欄中選擇“SSH”。
單擊SSH客戶端配置界麵左邊目錄樹(“Category”)中的連接協議(“Connection”)中的“SSH”,出現如圖1-8的界麵。
圖1-8 SSH客戶端配置界麵(2)
在“Protocol options”區域中,選擇“Preferred SSH protocol version”參數的值為2。
& 說明:
對於有些SSH客戶端軟件,隻有在選擇SSH1版本才支持DES算法,選擇SSH2版本則不支持DES算法。PuTTY客戶端軟件在選擇了DES後,可以在SSH2版本中支持DES算法協商。
如果用戶需要公鑰認證,就必須指定相應的私鑰文件。如果用戶隻需要密碼認證,則不需要指定相應的私鑰文件。
如圖1-8,單擊“SSH”下麵的“Auth”(認證),出現如圖1-9的界麵。
圖1-9 SSH客戶端配置界麵(3)
單擊<Browse…>按鈕,彈出文件選擇窗口。選擇私鑰文件,並點擊<Open>按鈕即可。隨後出現如圖1-10所示的SSH客戶端界麵,如果連接正常則會提示用戶輸入用戶名。認證成功後,即可登錄到服務器端。
圖1-10 SSH客戶端界麵(1)
(1)
在圖1-8中,單擊<Open>按鈕,出現如圖1-11所示的SSH客戶端界麵,如果連接正常則會提示用戶輸入用戶名及密碼。
圖1-11 SSH客戶端界麵(2)
(2)
輸入正確的用戶名和密碼,即可成功進行SSH登錄連接。
(3)
退出登錄,在用戶視圖下執行命令quit即可。
表1-18 采用支持SSH2的交換機作為客戶端時的配置任務簡介
配置任務 |
說明 |
詳細配置 |
設置SSH客戶端是否支持首次認證 |
可選 |
|
建立SSH客戶端和服務器端的連接 |
必選 |
當設備作為SSH客戶端和服務器端連接時,可以設置SSH客戶端對訪問的SSH服務器是否支持首次認證。
l
如果支持首次認證,是指當SSH客戶端首次訪問服務器端,而客戶端沒有配置服務器端的主機公鑰時,用戶可以選擇繼續訪問該服務器端,並在客戶端保存該主機公鑰;當用戶下次訪問該服務器端時,就以保存的主機公鑰來認證該服務器。
l
如果不支持首次認證,則當客戶端沒有配置服務器端的主機公鑰時,客戶端將拒絕訪問該服務器。用戶必須事先將要訪問的服務器端的主機公鑰配置在本地,同時指定要連接的服務器端的主機公鑰名稱,以便客戶端對連接的服務器進行認證。
表1-19 設置SSH客戶端支持首次認證
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
設置SSH客戶端對訪問的SSH服務器進行首次認證 |
ssh client first-time enable |
可選 缺省情況下,客戶端支持首次認證 |
表1-20 設置SSH客戶端不支持首次認證
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
設置SSH客戶端對訪問的SSH服務器不進行首次認證 |
undo ssh client first-time |
必選 缺省情況下,客戶端支持首次認證 |
配置服務器端的公鑰 |
請參見“1.2.8 在服務器端配置客戶端的公鑰” |
必選 在客戶端配置服務器端公鑰的方法,與在服務器端配置客戶端公鑰的方法相同 |
在客戶端上指定要連接的服務器端的主機公鑰名稱 |
ssh client { server-ip | server-name } assign { publickey | rsa-key } keyname |
必選 |
當認證方式不同時,SSH客戶端與SSH服務器建立連接的方式不同,具體請參見表1-21。
表1-21 建立SSH客戶端和服務器端的連接
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
建立SSH客戶端和服務器端的連接 |
ssh2 { host-ip | host-name } [
port-num ] [ identity-key { dsa | rsa } | prefer_kex { dh_group1 | dh_exchange_group } | prefer_ctos_cipher
{ des | aes128 } | prefer_stoc_cipher { des | aes128
} | prefer_ctos_hmac { sha1
| sha1_96 | md5 | md5_96 } | prefer_stoc_hmac { sha1
| sha1_96 | md5 | md5_96 } ] * |
必選 該配置用來啟動SSH客戶端和服務器端建立連接,並指定客戶端和服務器的首選密鑰交換算法、首選加密算法和首選HMAC算法 注意: l 當采用Password認證方式時,不需要使用identity-key關鍵字 l 當采用公鑰認證方式時,對於identity-key關鍵字的使用可選 |
& 說明:
如果在服務器端指定客戶端的認證方式為公鑰認證,當客戶端登錄服務器端時客戶端需要讀取本地的私鑰進行驗證。由於公鑰認證可以采用RSA和DSA兩種公鑰算法,所以需要用identity-key關鍵字指定采用的公鑰算法,才能得到正確的本地私鑰數據,否則無法成功登錄。
用戶可以通過以下配置,對SSH客戶端指定源IP地址或者源接口,這樣客戶端可以用指定的IP地址或接口訪問SSH服務器,增加了業務的可管理性。
表1-22 指定業務報文源IP地址或源接口
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
為SSH客戶端指定源IP地址 |
ssh2 source-ip ip-address |
必選 缺省情況下,以係統決定的本設備地址訪問SSH服務器 |
為SSH客戶端指定源接口 |
ssh2 source-interface interface-type interface-number |
必選 缺省情況下,以係統決定的本設備地址訪問SSH服務器 |
完成上述配置後,在任意視圖下執行display命令,可以顯示配置SSH後的運行情況。通過查看顯示信息,用戶可以驗證配置的效果。
表1-23 SSH配置顯示
操作 |
命令 |
說明 |
顯示RSA密鑰對的公鑰部分 |
display rsa local-key-pair public |
display命令可以在任意視圖下執行 |
顯示客戶端RSA密鑰對的公鑰部分 |
display rsa peer-public-key [ brief | name keyname ] |
|
查看RSA或DSA密鑰的公鑰部分 |
display public-key local
{ dsa | rsa } public |
|
顯示客戶端的公鑰部分 |
display public-key peer [ brief | name pubkey-name ] |
|
顯示SSH狀態信息和會話信息 |
display ssh server { session | status } |
|
顯示SSH用戶信息 |
display ssh user-information [ username ] |
|
顯示當前為SSH服務器端設置的源IP地址 |
display ssh-server source-ip |
|
顯示客戶端保存的服務器端的主機公鑰和服務器的對應關係 |
display ssh server-info |
|
顯示當前為SSH客戶端設置的源IP地址 |
display ssh2 source-ip |
當用戶通過一個不能保證安全的網絡遠程登錄到交換機時,為更大限度地保證數據信息交換的安全性,使用SSH來實現此目的,並采用password認證。如圖1-12所示,PC終端(SSH Client)上運行支持SSH2.0的客戶端軟件,與交換機(SSH Server)建立本地連接。
圖1-12 SSH Server采用password認證時的配置組網圖
l
SSH服務器端配置
# 在交換機上創建VLAN接口,並為其分配IP地址,作為客戶端連接的SSH服務器地址。
<H3C> system-view
[H3C] interface vlan-interface 1
[H3C-Vlan-interface1] ip address 192.168.0.1 255.255.255.0
[H3C-Vlan-interface1] quit
# 生成RSA和DSA密鑰對。
[H3C] public-key local create rsa
[H3C] public-key local create dsa
# 設置用戶接口上的認證模式為AAA認證。
[H3C] user-interface vty 0 4
[H3C-ui-vty0-4] authentication-mode scheme
# 設置用戶接口上支持SSH協議。
[H3C-ui-vty0-4] protocol inbound ssh
[H3C-ui-vty0-4] quit
# 創建用戶client001,設置認證密碼為abc,登錄協議為SSH,能訪問的命令級別為3。
[H3C] local-user client001
[H3C-luser-client001] password simple abc
[H3C-luser-client001] service-type ssh level 3
[H3C-luser-client001] quit
# 指定用戶client001的認證方式為password
[H3C] ssh user client001 authentication-type password
l
SSH客戶端配置
# 客戶端主機配置IP地址
客戶端主機的IP地址必須同交換機上的VLAN接口的IP地址位於同一個網段,這裏設置為“192.168.0.2”。
# 建立與SSH服務器端的連接
SSH客戶端軟件的配置(以Putty0.58為例)。
(1)
打開PuTTY.exe程序,出現如下客戶端配置界麵。
圖1-13 SSH客戶端配置界麵
在“Host Name(or IP address)”文本框中輸入SSH服務器的IP地址。
(2)
在圖1-13中,單擊<Open>按鈕,出現如圖1-14所示的SSH客戶端界麵,如果連接正常則會提示用戶輸入用戶名client001,密碼abc。認證成功後,即可登錄到服務器端。
圖1-14 SSH客戶端界麵
當用戶通過一個不能保證安全的網絡遠程登錄到交換機時,為更大限度地保證數據信息交換的安全性,使用SSH來實現此目的,並采用公鑰認證。如圖1-15所示,PC終端(SSH Client)上運行支持SSH2.0的客戶端軟件,與交換機(SSH Server)建立本地連接。
圖1-15 SSH Server采用公鑰認證時的配置組網圖
& 說明:
采用公鑰認證時,可以采用RSA或DSA公鑰作為服務器端認證客戶端的公鑰。這裏以RSA公鑰為例。
l
SSH服務器端配置
# 在交換機上創建VLAN接口,並為其分配IP地址,作為客戶端連接的SSH服務器地址。
<H3C> system-view
[H3C] interface vlan-interface 1
[H3C-Vlan-interface1] ip address 192.168.0.1 255.255.255.0
[H3C-Vlan-interface1] quit
# 生成RSA和DSA密鑰對。
[H3C] public-key local create rsa
[H3C] public-key local create dsa
# 設置用戶接口上的認證模式為AAA認證。
[H3C] user-interface vty 0 4
[H3C-ui-vty0-4] authentication-mode scheme
# 設置用戶接口上支持SSH協議。
[H3C-ui-vty0-4] protocol inbound ssh
# 設置用戶能訪問的命令級別為3。
[H3C-ui-vty0-4] user privilege level 3
[H3C-ui-vty0-4] quit
# 創建用戶client001,並指定認證方式為公鑰認證。
[H3C] ssh user client001 authentication-type publickey
& 說明:
這裏需要先在SSH客戶端使用SSH客戶端軟件生成RSA密鑰對,並將生成的RSA公鑰保存到指定文件中,再將此公鑰文件通過FTP/TFTP方式上傳到服務器端,文件名為public。有關配置請參見客戶端的配置。
# 在服務器端從文件public中導入客戶端的公鑰,公鑰名為Switch001。
[H3C] public-key peer Switch001 import sshkey public
# 為用戶client001指定公鑰Switch001。
[H3C] ssh user client001 assign rsa-key Switch001
l
SSH客戶端的配置
# 生成密鑰對(以PuTTYGen為例)。
運行PuTTYGen.exe,選擇要生成的密鑰對。此處參數欄選擇“SSH2(RSA)”,點擊<Generate>,產生客戶端密鑰對。
圖1-16 生成客戶端密鑰(1)
& 注意:
在產生密鑰對的過程中需不停的移動鼠標,鼠標移動僅限於下圖藍色框中除綠色標記進程條外的地方,否則進程條的顯示會不動,密鑰對將停止產生,見圖1-17。
密鑰對產生後,點擊<save public key>,輸入存儲公鑰的文件名public,點擊保存。
圖1-18 生成客戶端密鑰(3)
同理,點擊<save private key>存儲私鑰,彈出警告框,提醒是否保存沒做任何保護措施的私鑰,點擊<Yes>,輸入私鑰文件名即可,此處為private,點擊保存。
圖1-19 生成客戶端密鑰(4)
& 說明:
客戶端生成密鑰對後,需要將保存的公鑰文件通過FTP/TFTP方式上傳到服務器端,並完成服務器端配置後,才可繼續客戶端的配置。
# 建立與SSH服務器端的連接
SSH客戶端軟件的配置(以Putty0.58為例)。
(1)
打開PuTTY.exe程序,出現如圖1-20所示的客戶端配置界麵。
圖1-20 SSH客戶端配置界麵(1)
在“Host Name(or IP address)”文本框中輸入SSH服務器的IP地址。
(2)
單擊“SSH”下麵的“Auth”(認證),出現如圖1-21的界麵。
圖1-21 SSH客戶端配置界麵(2)
單擊<Browse…>按鈕,彈出文件選擇窗口。選擇與配置到服務器端的公鑰對應的私鑰文件,並確定即可。
(3)
如圖1-21,單擊<Open>按鈕,出現如圖1-22所示的SSH客戶端界麵,如果連接正常則會提示用戶輸入用戶名client001。認證成功後,即可登錄到服務器端。
圖1-22 SSH客戶端界麵
當用戶通過交換機遠程登錄到另一台交換機時,如果通過的網絡不能保證安全,為更大限度地保證數據信息交換的安全性,使用SSH來實現此目的,並采用password認證。如圖1-23所示:
l
交換機SwitchA作為SSH客戶端,用來進行SSH登錄的用戶名為client001。
l
交換機SwitchB作為SSH服務器,IP地址為10.165.87.136。
圖1-23 SSH客戶端采用password認證時的配置組網圖
l
配置SwitchB
# 在交換機上創建VLAN接口,並為其分配IP地址,作為客戶端連接的SSH服務器地址。
<H3C> system-view
[H3C] interface vlan-interface 1
[H3C-Vlan-interface1] ip address 10.165.87.136 255.255.255.0
[H3C-Vlan-interface1] quit
# 生成RSA和DSA密鑰對。
[H3C] public-key local create rsa
[H3C] public-key local create dsa
# 設置用戶接口上的認證模式為AAA認證。
[H3C] user-interface vty 0 4
[H3C-ui-vty0-4] authentication-mode scheme
# 設置用戶接口上支持SSH協議。
[H3C-ui-vty0-4] protocol inbound ssh
[H3C-ui-vty0-4] quit
# 創建用戶client001,設置認證密碼為abc,登錄協議為SSH,能訪問的命令級別為3。
[H3C] local-user client001
[H3C-luser-client001] password simple abc
[H3C-luser-client001] service-type ssh level 3
[H3C-luser-client001] quit
# 配置SSH用戶 client001認證方式為password。
[H3C] ssh user client001 authentication-type password
l
配置SwitchA
# 在交換機上創建VLAN接口,並為其分配IP地址,作為連接SSH服務器端的SSH客戶端地址。
<H3C> system-view
[H3C] interface vlan-interface 1
[H3C-Vlan-interface1] ip address 10.165.87.137 255.255.255.0
[H3C-Vlan-interface1] quit
# 建立到服務器10.165.87.136的SSH連接。
[H3C] ssh2 10.165.87.136
Username: client001
Trying 10.165.87.136 ...
Press CTRL+K to abort
Connected to 10.165.87.136 ...
The Server is not authenticated. Do you continue to access it?(Y/N):y
Do you want to save the server's public key?(Y/N):n
Enter password:
**************************************************************************
* Copyright(c) 2004-2007 Hangzhou H3C Tech. Co., Ltd. All rights reserved. *
* Without the owner's prior written consent,
*
* no decompiling or reverse-engineering shall be allowed.
*
**************************************************************************
<H3C>
當用戶通過交換機遠程登錄到另一台交換機時,如果通過的網絡不能保證安全,為更大限度地保證數據信息交換的安全性,使用SSH來實現此目的,並采用公鑰認證。如圖1-24所示:
l
交換機SwitchA作為SSH客戶端,用來進行SSH登錄的用戶名為client001。
l
交換機SwitchB作為SSH服務器,IP地址為10.165.87.136。
圖1-24 SSH客戶端采用公鑰認證時的配置組網圖
& 說明:
采用公鑰認證時,可以采用RSA或DSA公鑰作為服務器端認證客戶端的公鑰。這裏以DSA公鑰為例。
l
配置SwitchB
# 在交換機上創建VLAN接口,並為其分配IP地址,作為客戶端連接的SSH服務器地址。
<H3C> system-view
[H3C] interface vlan-interface 1
[H3C-Vlan-interface1] ip address 10.165.87.136 255.255.255.0
[H3C-Vlan-interface1] quit
# 生成RSA和DSA密鑰對。
[H3C] public-key local create rsa
[H3C] public-key local create dsa
# 設置用戶接口上的認證模式為AAA認證。
[H3C] user-interface vty 0 4
[H3C-ui-vty0-4] authentication-mode scheme
# 設置用戶接口上支持SSH協議。
[H3C-ui-vty0-4] protocol inbound ssh
# 設置用戶能訪問的命令級別為3。
[H3C-ui-vty0-4] user privilege level 3
[H3C-ui-vty0-4] quit
# 指定用戶client001的認證方式為公鑰認證。
[H3C] ssh user client001 authentication-type publickey
& 說明:
這裏需要先在SSH客戶端生成DSA密鑰對,並將生成的DSA公鑰保存到指定文件中,再將此公鑰文件通過FTP/TFTP方式上傳到服務器端,文件名為Switch001。有關配置請參見客戶端的配置。
# 在服務器端從文件Switch001中導入客戶端的公鑰,公鑰名為Switch001。
[H3C] public-key peer Switch001 import sshkey Switch001
# 為用戶client001指定公鑰Switch001。
[H3C] ssh user client001 assign rsa-key Switch001
l
配置SwitchA
# 在交換機上創建VLAN接口,並為其分配IP地址,作為連接SSH服務器端的SSH客戶端地址。
<H3C> system-view
[H3C] interface vlan-interface 1
[H3C-Vlan-interface1] ip address 10.165.87.137 255.255.255.0
[H3C-Vlan-interface1] quit
# 生成DSA密鑰對。
[H3C] public-key local create dsa
# 將生成的DSA主機公鑰導出到指定文件中,文件名為Switch001。
[H3C] public-key local export dsa ssh2 Switch001
& 說明:
客戶端生成密鑰對後,需要將保存的公鑰文件通過FTP/TFTP方式上傳到服務器端,並完成服務器端配置後才可繼續客戶端的配置。
# 建立到服務器10.165.87.136的SSH連接。
[H3C] ssh2 10.165.87.136 identity-key dsa
Username: client001
Trying 10.165.87.136 ...
Press CTRL+K to abort
Connected to 10.165.87.136 ...
The Server is not authenticated. Do you continue to access it?(Y/N):y
Do you want to save the server's public key?(Y/N):n
**************************************************************************
* Copyright(c) 2004-2007 Hangzhou H3C Tech. Co., Ltd. All rights reserved. *
* Without the owner's prior written consent,
*
* no decompiling or reverse-engineering shall be allowed.
*
**************************************************************************
<H3C>
當用戶通過交換機遠程登錄到另一台交換機時,如果通過的網絡不能保證安全,為更大限度地保證數據信息交換的安全性,使用SSH來實現此目的。如圖1-25所示:
l
交換機SwitchA作為SSH客戶端,用來進行SSH登錄的用戶名為client001。
l
交換機SwitchB作為SSH服務器,IP地址為10.165.87.136。
l
采用公鑰認證方式,以提高安全性。
圖1-25 SSH客戶端配置組網圖
l
配置SwitchB
# 在交換機上創建VLAN接口,並為其分配IP地址,作為客戶端連接的SSH服務器地址。
<H3C> system-view
[H3C] interface vlan-interface 1
[H3C-Vlan-interface1] ip address 10.165.87.136 255.255.255.0
[H3C-Vlan-interface1] quit
# 生成RSA和DSA密鑰對。
[H3C] public-key local create rsa
[H3C] public-key local create dsa
# 設置用戶接口上的認證模式為AAA認證。
[H3C] user-interface vty 0 4
[H3C-ui-vty0-4] authentication-mode scheme
# 設置用戶接口上支持SSH協議。
[H3C-ui-vty0-4] protocol inbound ssh
# 設置用戶能訪問的命令級別為3。
[H3C-ui-vty0-4] user privilege level 3
[H3C-ui-vty0-4] quit
# 指定用戶client001的認證方式為公鑰認證。
[H3C] ssh user client001 authentication-type publickey
& 說明:
這裏需要先在SSH客戶端生成DSA密鑰對,並將生成的DSA公鑰保存到指定文件中,再將此公鑰文件通過FTP/TFTP方式上傳到服務器端,文件名為Switch001。有關配置請參見客戶端的配置。
# 在服務器端從文件Switch001中導入客戶端的公鑰,公鑰名為Switch001。
[H3C] public-key peer Switch001 import sshkey Switch001
# 為用戶client001指定公鑰Switch001。
[H3C] ssh user client001 assign rsa-key Switch001
# 將服務器端生成的DSA主機公鑰導出到指定文件中,文件名為Switch002。
[H3C] public-key local export dsa ssh2 Switch002
& 說明:
采用不支持首次認證時,需要將服務器端導出的DSA密鑰的公鑰文件通過FTP/TFTP方式上傳到客戶端,文件名為Switch002。
l
配置SwitchA
# 在交換機上創建VLAN接口,並為其分配IP地址,作為連接SSH服務器端的SSH客戶端地址。
<H3C> system-view
[H3C] interface vlan-interface 1
[H3C-Vlan-interface1] ip address 10.165.87.137 255.255.255.0
[H3C-Vlan-interface1] quit
# 生成DSA密鑰對。
[H3C] public-key local create dsa
# 將生成的DSA主機公鑰導出到指定文件中,文件名為Switch001。
[H3C] public-key local export dsa ssh2 Switch001
& 說明:
客戶端生成密鑰對後,需要將導出的公鑰文件通過FTP/TFTP方式上傳到服務器端。並完成服務器端配置後才可繼續客戶端的配置。
# 設置不支持首次認證
[H3C] undo ssh client first-time
& 說明:
采用不支持首次認證時,需要先在SSH服務器端將SSH服務器端生成的DSA公鑰導出到指定文件中,再將此公鑰文件通過FTP/TFTP方式上傳到客戶端,文件名為Switch002。有關配置請參見服務器端的配置。
# 在客戶端從文件Switch002中導入服務器端的公鑰,公鑰名為Switch002。
[H3C] public-key peer Switch002 import sshkey Switch002
# 在客戶端上指定要連接的服務器端的主機公鑰名稱。
[H3C] ssh client 10.165.87.136 assign rsa-key Switch002
# 建立到服務器10.165.87.136的SSH連接。
[H3C] ssh2 10.165.87.136 identity-key dsa
Username: client001
Trying 10.165.87.136 ...
Press CTRL+K to abort
Connected to 10.165.87.136 ...
**************************************************************************
* Copyright(c) 2004-2007 Hangzhou H3C Tech. Co., Ltd. All rights reserved. *
* Without the owner's prior written consent,
*
* no decompiling or reverse-engineering shall be allowed.
*
**************************************************************************
<H3C>
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!