12-SSH2.0配置
本章節下載: 12-SSH2.0配置 (552.03 KB)
目 錄
· 設備運行於FIPS模式時,本特性的部分配置相對於非FIPS模式有所變化,具體差異請見本文相關描述。有關FIPS模式的詳細介紹請參見“安全配置指導”中的“FIPS”。
· 本章中典型配置舉例中的配置,如無特殊說明,均以設備運行在非FIPS模式下的命令行為準。
SSH是Secure Shell(安全外殼)的簡稱。用戶通過一個不能保證安全的網絡環境遠程登錄到設備時,SSH可以利用加密和強大的認證功能提供安全保障,保護設備不受諸如IP地址欺詐、明文密碼截取等攻擊。
設備支持SSH服務器功能,可以接受多個SSH客戶端的連接。同時,設備還支持SSH客戶端功能,允許用戶與支持SSH服務器功能的設備建立SSH連接,從而實現從本地設備通過SSH登錄到遠程設備上。
· 目前,設備作為SSH服務器時,非FIPS模式下,支持SSH2和SSH1兩個版本;FIPS模式下,僅支持SSH2版本;設備作為SSH客戶端時,隻支持SSH2版本。
· 如無特殊說明,文中的SSH均指SSH2。
在整個通訊過程中,為實現SSH的安全連接,服務器端與客戶端要經曆如下五個階段:
表1-1 SSH服務器端與客戶端建立連接的五個階段
階段 |
說明 |
詳細內容 |
版本號協商階段 |
SSH目前包括SSH1和SSH2兩個版本,雙方通過版本協商確定使用的版本 |
|
密鑰和算法協商階段 |
SSH支持多種加密算法,雙方根據本端和對端支持的算法,協商出最終使用的算法,並通過DH交換,生成相同的會話密鑰和會話ID |
|
認證階段 |
SSH客戶端向服務器端發起認證請求,服務器端對客戶端進行認證 |
|
會話請求階段 |
認證通過後,SSH客戶端向服務器端發送會話請求 |
|
交互會話階段 |
會話請求通過後,SSH服務器端和客戶端進行信息的交互 |
具體步驟如下:
(2) 服務器打開端口22,等待客戶端連接。
(3) 客戶端向服務器端發起TCP初始連接請求,TCP連接建立後,服務器向客戶端發送第一個報文,包括版本標誌字符串,格式為“SSH-<主協議版本號>.<次協議版本號>-<軟件版本號>”,協議版本號由主版本號和次版本號組成,軟件版本號主要是為調試使用。
(4) 客戶端收到報文後,解析該數據包,如果服務器端的協議版本號比自己的低,且客戶端能支持服務器端的低版本,就使用服務器端的低版本協議號,否則使用自己的協議版本號。
(5) 客戶端回應服務器一個報文,包含了客戶端決定使用的協議版本號。服務器比較客戶端發來的版本號,如果服務器支持該版本,則版本協商結果為使用該版本,否則,版本協商失敗。
(6) 如果協商成功,則進入密鑰和算法協商階段,否則服務器端斷開TCP連接。
上述報文都是采用明文方式傳輸的。
具體步驟如下:
· 服務器端和客戶端分別發送算法協商報文給對端,報文中包含自己支持的公鑰算法列表、加密算法列表、MAC(Message Authentication Code,消息驗證碼)算法列表、壓縮算法列表等。
· 服務器端和客戶端根據對端和本端支持的算法列表得出最終使用的算法。任何一種算法協商失敗,都會導致服務器端和客戶端的算法協商過程失敗,服務器將斷開與客戶端的連接。
· 服務器端和客戶端利用DH交換(Diffie-Hellman Exchange)算法、主機密鑰對等參數,生成會話密鑰和會話ID,並完成客戶端對服務器身份的驗證。
通過以上步驟,服務器端和客戶端就取得了相同的會話密鑰和會話ID。對於後續傳輸的數據,兩端都會使用會話密鑰進行加密和解密,保證了數據傳送的安全。會話ID用來標識一個SSH連接,在認證階段,會話ID還會用於兩端的認證過程。
在密鑰和算法協商階段之前,服務器端需要生成DSA或RSA密鑰對,他們不僅用於生成會話密鑰和會話ID,還用於客戶端驗證服務器身份。DSA和RSA密鑰對的詳細介紹請參見“安全配置指導”中的“公鑰管理配置”。
SSH提供兩種認證方法:
· password認證:利用AAA(Authentication、Authorization、Accounting,認證、授權和計費)對客戶端身份進行認證。客戶端向服務器發出password認證請求,將用戶名和密碼加密後發送給服務器;服務器將該信息解密後得到用戶名和密碼的明文,通過本地認證或遠程認證驗證用戶名和密碼的合法性,並返回認證成功或失敗的消息。
· publickey認證:采用數字簽名的方法來認證客戶端。目前,設備上可以利用DSA和RSA兩種公鑰算法實現數字簽名。客戶端發送包含用戶名、公鑰和公鑰算法的publickey認證請求給服務器端。服務器對公鑰進行合法性檢查,如果不合法,則直接發送失敗消息;否則,服務器利用數字簽名對客戶端進行認證,並返回認證成功或失敗的消息。
對於SSH2,除了上述兩種認證方法外,還提供了password-publickey認證和any認證:
· password-publickey認證:指定客戶端版本為SSH2的用戶認證方式為必須同時進行password和publickey兩種認證;客戶端版本為SSH1的用戶認證方式為隻要進行其中一種認證即可。
· any認證:不指定用戶的認證方式,用戶既可以采用password認證,也可以采用publickey認證。
認證階段的具體步驟如下:
· 客戶端向服務器端發送認證請求,認證請求中包含用戶名、認證方法(password認證或publickey認證)、與該認證方法相關的內容(如:password認證時,內容為密碼)。
· 服務器端對客戶端進行認證,如果認證失敗,則向客戶端發送認證失敗消息,其中包含可以再次認證的方法列表。
· 客戶端從認證方法列表中選取一種認證方法再次進行認證。
· 該過程反複進行,直到認證成功或者認證次數達到上限,服務器關閉連接為止。
設備作為SSH服務器發起的二次密碼認證,僅SSH2及以後版本的SSH客戶端才能支持。
認證通過後,客戶端向服務器發送會話請求。服務器等待並處理客戶端的請求。請求被成功處理後,服務器會向客戶端回應SSH_SMSG_SUCCESS包,SSH進入交互會話階段;否則回應SSH_SMSG_FAILURE包,表示服務器處理請求失敗或者不能識別請求。
會話請求成功後,連接進入交互會話階段。在這個階段,數據被雙向傳送。客戶端將要執行的命令加密後傳給服務器,服務器接收到報文,解密後執行該命令,將執行的結果加密發送給客戶端,客戶端將接收到的結果解密後顯示到終端上。
· 交互會話階段,用戶在客戶端可以通過粘貼文本會話的方式執行命令,但文本會話不能超過2000字節,且粘貼的命令最好是同一視圖下的命令,否則服務器可能無法正確執行該命令。
· 如果粘貼的文本會話超過2000字節,可以采用將配置文件通過SFTP(Secure FTP,安全的FTP)方式上傳到服務器,利用新的配置文件重新啟動的方式執行這些命令。
表1-2 SSH服務器配置任務簡介
配置任務 |
說明 |
詳細配置 |
生成DSA或RSA密鑰 |
必選 |
|
使能SSH服務器功能 |
必選 |
|
配置SSH客戶端登錄時的用戶界麵 |
必選 |
|
配置客戶端的公鑰 |
對於采用publickey認證的SSH用戶為必選 對於采用password認證的SSH用戶為可選 |
|
配置SSH用戶並指定服務類型和認證方式 |
可選 |
|
配置服務器上的SSH管理功能 |
可選 |
服務器端的DSA或RSA密鑰對,用於在密鑰和算法協商階段生成會話密鑰和會話ID,以及客戶端認證服務器。
表1-3 生成DSA或RSA密鑰
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
生成本地DSA或RSA密鑰對 |
public-key local create { dsa | rsa } |
必選 缺省情況下,沒有生成DSA和RSA密鑰對 |
· public-key local create命令的詳細介紹請參見“安全命令參考”中的“公鑰管理配置命令”。
· 雖然一個客戶端隻會采用DSA和RSA公鑰算法中的一種來認證服務器,但是由於不同客戶端支持的公鑰算法不同,為了確保客戶端能夠成功登錄服務器,建議在服務器上生成DSA和RSA兩種密鑰對。
· 通過public-key local create rsa命令生成RSA密鑰對時,將同時生成兩個密鑰對——服務器密鑰對和主機密鑰對,二者分別包括一個公鑰和一個私鑰。SSH1中利用SSH服務器端的服務器公鑰加密會話密鑰,以保證會話密鑰傳輸的安全;SSH2中通過DH算法在SSH服務器和SSH客戶端上生成會話密鑰,不需要傳輸會話密鑰,因此SSH2中沒有利用服務器密鑰對。
· RSA服務器密鑰和主機密鑰模數的最小長度為512位,最大長度為2048位。在SSH2中,有些客戶端要求服務器端生成的密鑰長度必須大於或等於768位。
· 通過public-key local create dsa命令生成DSA密鑰對時,隻生成一個主機密鑰對。SSH1中不支持DSA算法。
· DSA主機密鑰模數的最小長度為512位,最大長度為2048位。在SSH2中,有些客戶端要求服務器端生成的密鑰長度必須大於或等於768位。
表1-4 使能SSH服務器功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
使能SSH服務器功能 |
ssh server enable |
必選 缺省情況下,SSH服務器功能處於關閉狀態 |
SSH客戶端通過VTY用戶界麵訪問設備。因此,需要配置SSH客戶端登錄時采用的VTY用戶界麵,使其支持SSH遠程登錄協議。配置結果在客戶端下次請求登錄時生效。
表1-5 配置SSH客戶端登錄時的用戶界麵
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入一個或多個VTY用戶界麵視圖 |
user-interface vty number [ ending-number ] |
- |
配置登錄用戶界麵的認證方式為scheme方式 |
authentication-mode scheme |
必選 缺省情況下,用戶界麵認證為password方式 |
配置所在用戶界麵支持SSH協議 |
protocol inbound { all | ssh } |
可選 缺省情況下,係統支持所有的協議,即支持Telnet和SSH |
· authentication-mode命令和protocol inbound命令的詳細介紹,請參見“基礎配置命令參考”中的“登錄交換機配置命令”。
· 如果在該用戶界麵上配置支持的協議是SSH,為確保配置成功,請務必配置登錄用戶界麵的認證方式為authentication-mode scheme(采用AAA認證)。
· 如果某用戶界麵已經配置成支持SSH協議,則無法更改用戶界麵的認證方式,除非先取消用戶界麵支持SSH協議。
本配置適用於采用publickey認證的SSH用戶,采用password認證的SSH用戶,不必進行本配置。
SSH用戶采用publickey認證方式時,需要在服務器端配置客戶端的DSA或RSA主機公鑰,並在客戶端為該SSH用戶指定與主機公鑰對應的DSA或RSA主機私鑰,以便當客戶端登錄服務器端時,對客戶端進行驗證。
可以通過手工配置和從公鑰文件中導入兩種方式來配置客戶端的公鑰:
· 手工配置客戶端的公鑰時,可以采用手工輸入或拷貝粘貼的方式將客戶端的公鑰配置到服務器。這種方式要求手工輸入或拷貝粘貼的主機公鑰必須是未經轉換的DER(Distinguished Encoding Rules,特異編碼規則)公鑰編碼格式。
· 從公鑰文件中導入客戶端的公鑰時,係統會自動將客戶端的公鑰轉換為PKCS(Public Key Cryptography Standards,公共密鑰加密標準)編碼形式,並實現客戶端公鑰的配置。這種方式需要客戶端事先將公鑰文件通過FTP/TFTP以二進製(binary)方式上傳到服務器上。
· 建議選用從公鑰文件導入的方式配置客戶端公鑰。
· SSH服務器上最多可以配置20個客戶端的公鑰。
表1-6 手工配置客戶端的公鑰
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入公鑰視圖 |
public-key peer keyname |
- |
進入公鑰編輯視圖 |
public-key-code begin |
- |
配置客戶端的公鑰 |
直接輸入公鑰內容 |
必選 在輸入公鑰內容時,字符之間可以有空格,也可以按回車鍵繼續輸入數據 |
退回公鑰視圖 |
public-key-code end |
- 退出視圖時,係統自動保存配置的公鑰密鑰 |
退回係統視圖 |
peer-public-key end |
- |
表1-7 從公鑰文件中導入客戶端的公鑰
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
從公鑰文件中導入SSH用戶的公鑰 |
public-key peer keyname import sshkey filename |
必選 |
關於客戶端的公鑰的配置介紹,請參見“安全配置指導”中的“公鑰管理配置”。
通過本配置,可以在創建SSH用戶的同時,指定SSH用戶的服務類型和認證方式。
表1-8 配置SSH用戶並指定服務類型和認證方式
操作 |
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
|
創建SSH用戶,並指定SSH用戶的服務類型和認證方式 |
SSH用戶的服務類型為stelnet |
非FIPS模式下: ssh user username service-type stelnet authentication-type { password | { any | password-publickey | publickey } assign publickey keyname&<1-6> } FIPS模式下: ssh user username service-type stelnet authentication-type { password | password-publickey assign publickey keyname&<1-6> } |
二者必選其一 |
SSH用戶的服務類型為all、scp或sftp |
非FIPS模式下: ssh user username service-type { all | scp | sftp } authentication-type { password | { any | password-publickey | publickey } assign publickey keyname&<1-6> work-directory directory-name } FIPS模式下: ssh user username service-type { all | scp | sftp } authentication-type { password | password-publickey assign publickey keyname&<1-6> work-directory directory-name } |
· 對於AAA用戶,即使沒有創建對應的SSH用戶,隻要能夠通過AAA認證,且設置的服務類型為SSH,則該用戶仍然可以通過password認證方式登錄服務器。
· SSH用戶具的服務類型包括:Stelnet、SFTP和SCP。Stelnet即Secure Telnet,安全的Telnet服務,詳細內容請參見“1.1 SSH2.0簡介”;SFTP即Secure FTP,詳細內容請參見“2.1 SFTP簡介”;SCP即Secure Copy,詳細內容請參見“3.1 SCP簡介”。
· SSH1不支持服務類型scp與sftp。如果客戶端采用SSH1版本登錄服務器,則必須在服務器上配置服務類型為stelnet或者all。否則,客戶端無法登錄服務器。
· SCP與SFTP用戶登錄時使用的工作目錄與用戶使用的認證方式有關。隻采用publickey認證方式的用戶,使用的工作目錄為通過ssh user命令為該用戶設置的工作目錄;隻采用password認證方式的用戶,使用的工作目錄為通過AAA授權的工作目錄;同時采用publickey和password兩種認證方式的用戶,使用的工作目錄為通過ssh user命令為該用戶設置的工作目錄。
· 配置的認證方式和用戶公鑰,對於已經登錄的SSH用戶不會生效,隻在SSH用戶下次登錄時生效。
· 對於使用publickey認證方式的用戶:
· 必須在SSH服務器上配置相應的用戶及其公鑰。
· 登錄服務器後,用戶可以訪問的命令級別為在用戶界麵上通過user privilege level命令配置的級別。
· 對於使用password認證方式的用戶:
· 用戶的賬號信息可以配置在設備或者遠程認證服務器(如RADIUS認證服務器)上。
· 登錄服務器後,用戶可以訪問的命令級別由AAA來授權。
SSH的管理功能包括:
· 設置SSH服務器是否兼容SSH1版本的客戶端
· 設置RSA服務器密鑰對的更新時間,此配置僅對SSH客戶端版本為SSH1的用戶有效
· 設置SSH用戶認證的超時時間
· 設置SSH用戶請求連接的認證嚐試次數
通過定時更新服務器密鑰以及對用戶認證時間、認證次數的限製,可以防止惡意地對密鑰和用戶名的猜測和破解,從而提高了SSH連接的安全性。
表1-9 配置服務器上的SSH管理功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
設置SSH服務器兼容SSH1版本的客戶端 |
ssh server compatible-ssh1x [ enable ] |
可選 缺省情況下,SSH服務器兼容SSH1版本的客戶端 FIPS模式下,不支持本命令 |
設置RSA服務器密鑰對的更新時間 |
ssh server rekey-interval hours |
可選 缺省情況下,係統不更新RSA服務器密鑰對 FIPS模式下,不支持本命令 |
設置SSH用戶的認證超時時間 |
ssh server authentication-timeout time-out-value |
可選 缺省情況下,SSH用戶的認證超時時間為60秒 |
設置SSH認證嚐試的最大次數 |
ssh server authentication-retries times |
可選 缺省情況下,SSH連接認證嚐試的最大次數為3次 |
SSH客戶端通過publickey和password兩種方式進行認證嚐試的次數總和,不能超過ssh server authentication-retries命令配置的SSH連接認證嚐試次數,否則,客戶端認證失敗,無法登錄SSH服務器。
表1-10 SSH客戶端配置任務簡介
配置任務 |
說明 |
詳細配置 |
為SSH客戶端指定源IP地址或源接口 |
可選 |
|
配置SSH客戶端是否支持首次認證 |
可選 |
|
建立SSH客戶端和服務器端的連接 |
必選 |
用戶可以通過以下配置,為SSH客戶端指定源IP地址或者源接口,這樣客戶端可以用指定的IP地址或接口地址訪問SSH服務器,增加了業務的可管理性。
表1-11 為SSH客戶端指定源IP地址或源接口
操作 |
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
|
為SSH客戶端指定源IP地址或源接口 |
為SSH客戶端指定源IPv4地址或源接口 |
ssh client source { ip ip-address | interface interface-type interface-number } |
二者必選其一 缺省情況下,客戶端用設備路由指定的接口地址訪問SSH服務器 |
為SSH客戶端指定源IPv6地址或源接口 |
ssh client ipv6 source { ipv6 ipv6-address | interface interface-type interface-number } |
當設備作為SSH客戶端和服務器端連接時,可以設置SSH客戶端對訪問的SSH服務器是否進行首次認證。
· 如果支持首次認證,則當SSH客戶端首次訪問服務器,而客戶端沒有配置服務器端的主機公鑰時,用戶可以選擇繼續訪問該服務器,並在客戶端保存該主機公鑰;當用戶下次訪問該服務器時,就以保存的主機公鑰來認證該服務器。
· 如果不支持首次認證,則當客戶端沒有配置服務器端的主機公鑰時,客戶端將拒絕訪問該服務器。用戶必須事先將要訪問的服務器端的主機公鑰配置在本地,同時指定要連接的服務器端的主機公鑰名稱,以便客戶端對連接的服務器進行認證。
表1-12 配置SSH客戶端支持首次認證
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
設置SSH客戶端對訪問的SSH服務器進行首次認證 |
ssh client first-time [ enable ] |
可選 缺省情況下,客戶端進行首次認證 |
如果配置SSH客戶端不支持首次認證,則需要在客戶端配置服務器端的主機公鑰,並為要連接的服務器指定主機公鑰名稱,
表1-13 配置SSH客戶端不支持首次認證
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
設置SSH客戶端對訪問的SSH服務器不進行首次認證 |
undo ssh client first-time |
必選 缺省情況下,客戶端進行首次認證 |
配置服務器端的主機公鑰 |
必選 在客戶端配置服務器端主機公鑰的方法,與在服務器端配置客戶端公鑰的方法相同 |
|
在客戶端上指定要連接的服務器端的主機公鑰名稱 |
ssh client authentication server server assign publickey keyname |
必選 |
表1-14 建立SSH客戶端和服務器端的連接
操作 |
命令 |
說明 |
建立SSH客戶端和服務器端的連接,並指定公鑰算法、客戶端和服務器的首選加密算法、首選HMAC算法和首選密鑰交換算法 |
非FIPS模式下: ssh2 [ ipv6 ] server [ port-number ] [ identity-key { dsa | rsa } | prefer-ctos-cipher { 3des | aes128 | des } | prefer-ctos-hmac { md5 | md5-96 | sha1 | sha1-96 } | prefer-kex { dh-group-exchange | dh-group1 | dh-group14 } | prefer-stoc-cipher { 3des | aes128 | des } | prefer-stoc-hmac { md5 | md5-96 | sha1 | sha1-96 } ] * FIPS模式下: ssh2 [ ipv6 ] server [ port-number ] [ identity-key rsa | prefer-ctos-cipher { aes128 | aes256 } | prefer-ctos-hmac { sha1 | sha1-96 } | prefer-kex dh-group14 | prefer-stoc-cipher { aes128 | aes256 } | prefer-stoc-hmac { sha1 | sha1-96 } ] * |
必選 必須在用戶視圖下執行本命令 |
在完成上述配置後,在任意視圖下執行display命令,可以顯示配置後SSH的運行情況,通過查看顯示信息,驗證配置的效果。
表1-15 SSH協議顯示和維護
操作 |
命令 |
顯示當前為SFTP客戶端設置的源IP地址或者源接口 |
display sftp client source [ | { begin | exclude | include } regular-expression ] |
顯示當前為SSH客戶端設置的源IP地址或者源接口 |
display ssh client source [ | { begin | exclude | include } regular-expression ] |
在SSH服務器端顯示該服務器的狀態信息或會話信息 |
display ssh server { status | session } [ | { begin | exclude | include } regular-expression ] |
在SSH客戶端顯示客戶端保存的服務器端的主機公鑰和服務器的對應關係 |
display ssh server-info [ | { begin | exclude | include } regular-expression ] |
在SSH服務器端顯示SSH用戶信息 |
display ssh user-information [ username ] [ | { begin | exclude | include } regular-expression ] |
顯示本地密鑰對中的公鑰部分 |
display public-key local { dsa | rsa } public [ | { begin | exclude | include } regular-expression ] |
顯示保存在本地的遠端主機的公鑰信息 |
display public-key peer [ brief | name publickey-name ] [ | { begin | exclude | include } regular-expression ] |
display public-key local和display public-key peer命令的詳細介紹請參見“安全命令參考”中的“公鑰管理配置命令”。
如圖1-1,配置Host(SSH客戶端)與Switch建立本地連接。Host采用SSH協議登錄到Switch上,以保證數據信息交換的安全。SSH用戶采用的認證方式為password認證,用戶名和密碼保存在Switch上。
圖1-1 SSH password認證配置組網圖
(1) 配置SSH服務器
# 生成RSA密鑰對。
<Switch> system-view
[Switch] public-key local create rsa
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is greater than 512,
It will take a few minutes.
Press CTRL+C to abort.
Input the bits of the modulus[default = 1024]:
Generating Keys...
++++++++
++++++++++++++
+++++
++++++++
# 生成DSA密鑰對。
[Switch] public-key local create dsa
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is greater than 512,
It will take a few minutes.
Press CTRL+C to abort.
Input the bits of the modulus[default = 1024]:
Generating Keys...
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++
# 啟動SSH服務器。
[Switch] ssh server enable
# 配置VLAN接口1的IP地址,客戶端將通過該地址連接SSH服務器。
[Switch] interface vlan-interface 1
[Switch-Vlan-interface1] ip address 192.168.1.40 255.255.255.0
[Switch-Vlan-interface1] quit
# 設置SSH客戶端登錄用戶界麵的認證方式為AAA認證。
[Switch] user-interface vty 0 15
[Switch-ui-vty0-15] authentication-mode scheme
# 設置Switch上遠程用戶登錄協議為SSH。
[Switch-ui-vty0-15] protocol inbound ssh
[Switch-ui-vty0-15] quit
# 創建本地用戶client001,並設置用戶訪問的命令級別為3。
[Switch] local-user client001
[Switch-luser-client001] password simple aabbcc
[Switch-luser-client001] service-type ssh
[Switch-luser-client001] authorization-attribute level 3
[Switch-luser-client001] quit
# 配置SSH用戶client001的服務類型為Stelnet,認證方式為password認證。(此步驟可以不配置)
[Switch] ssh user client001 service-type stelnet authentication-type password
(2) SSH客戶端建立與SSH服務器的連接
SSH客戶端軟件有很多,例如PuTTY、OpenSSH等。本文中僅以客戶端軟件PuTTY0.58為例,說明SSH客戶端的配置方法。
# 建立與SSH服務器端的連接。
打開PuTTY.exe程序,出現如圖1-2所示的客戶端配置界麵。在“Host Name(or IP address)”文本框中輸入SSH服務器的IP地址為192.168.1.40。
圖1-2 SSH客戶端配置界麵(1)
在圖1-2中,單擊<Open>按鈕。按提示輸入用戶名client001及密碼aabbcc,即可進入Switch的配置界麵。
如圖1-3,配置Host(SSH客戶端)與Switch建立本地連接。Host采用SSH協議登錄到Switch上,以保證數據信息交換的安全。SSH用戶采用的認證方式為publickey認證,公鑰算法為RSA。
圖1-3 SSH publickey認證配置組網圖
在服務器的配置過程中需要指定客戶端的公鑰信息,因此建議首先完成客戶端密鑰對的配置,再進行服務器的配置。
(1) 配置SSH客戶端
# 生成RSA密鑰對。
在客戶端運行PuTTYGen.exe,在參數欄中選擇“SSH-2 RSA”,點擊<Generate>,產生客戶端密鑰對。
圖1-4 生成客戶端密鑰(1)
在產生密鑰對的過程中需不停的移動鼠標,鼠標移動僅限於下圖藍色框中除綠色標記進程條外的地方,否則進程條的顯示會不動,密鑰對將停止產生,見圖1-5。
密鑰對產生後,點擊<Save public key>,輸入存儲公鑰的文件名key.pub,點擊<保存>按鈕。
圖1-6 生成客戶端密鑰(3)
點擊<Save private key>存儲私鑰,彈出警告框,提醒是否保存沒做任何保護措施的私鑰,點擊<Yes>,輸入私鑰文件名為private,點擊保存。
圖1-7 生成客戶端密鑰(4)
客戶端生成密鑰對後,需要將保存的公鑰文件key.pub通過FTP/TFTP方式上傳到服務器。
(2) 配置SSH服務器
# 生成RSA密鑰對。
<Switch> system-view
[Switch] public-key local create rsa
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is greater than 512,
It will take a few minutes.
Press CTRL+C to abort.
Input the bits of the modulus[default = 1024]:
Generating Keys...
++++++++
++++++++++++++
+++++
++++++++
# 生成DSA密鑰對。
[Switch] public-key local create dsa
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is greater than 512,
It will take a few minutes.
Press CTRL+C to abort.
Input the bits of the modulus[default = 1024]:
Generating Keys...
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++
# 啟動SSH服務器。
[Switch] ssh server enable
# 配置VLAN接口1的IP地址,客戶端將通過該地址連接SSH服務器。
[Switch] interface vlan-interface 1
[Switch-Vlan-interface1] ip address 192.168.1.40 255.255.255.0
[Switch-Vlan-interface1] quit
# 設置用戶接口上認證模式為AAA認證。
[Switch] user-interface vty 0 15
[Switch-ui-vty0-15] authentication-mode scheme
# 設置Switch上遠程用戶登錄協議為SSH。
[Switch-ui-vty0-15] protocol inbound ssh
# 設置用戶能訪問的命令級別為3。
[Switch-ui-vty0-15] user privilege level 3
[Switch-ui-vty0-15] quit
# 從文件key.pub中導入遠端的公鑰,並命名為Switch001。
[Switch] public-key peer Switch001 import sshkey key.pub
# 設置SSH用戶client002的認證方式為publickey,並指定公鑰為Switch001。
[Switch] ssh user client002 service-type stelnet authentication-type publickey assign publickey Switch001
(3) SSH客戶端建立與SSH服務器的連接
# 指定私鑰文件,並建立與SSH服務器的連接。
打開PuTTY.exe程序,出現如圖1-8所示的客戶端配置界麵。在“Host Name(or IP address)”文本框中輸入SSH服務器的IP地址為192.168.1.40。
圖1-8 SSH客戶端配置界麵(1)
單擊左側導航欄“SSH”下麵的“Auth”(認證),出現如圖1-9的界麵。單擊<Browse…>按鈕,彈出文件選擇窗口。選擇與配置到服務器端的公鑰對應的私鑰文件private。
圖1-9 SSH客戶端配置界麵(2)
如圖1-9,單擊<Open>按鈕。按提示輸入用戶名client002,即可進入Switch的配置界麵。
如圖1-10,配置Switch A作為客戶端,采用SSH協議登錄到Switch B上。SSH用戶采用的認證方式為password認證,用戶名為client001,密碼為aabbcc。
圖1-10 設備作為SSH客戶端配置組網圖
(1) 配置SSH服務器
# 生成RSA密鑰對。
<SwitchB> system-view
[SwitchB] public-key local create rsa
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is greater than 512,
It will take a few minutes.
Press CTRL+C to abort.
Input the bits of the modulus[default = 1024]:
Generating Keys...
++++++++
++++++++++++++
+++++
++++++++
# 生成DSA密鑰對。
[SwitchB] public-key local create dsa
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is greater than 512,
It will take a few minutes.
Press CTRL+C to abort.
Input the bits of the modulus[default = 1024]:
Generating Keys...
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++
# 啟動SSH服務器。
[SwitchB] ssh server enable
# 配置VLAN接口1的IP地址,客戶端將通過該地址連接SSH服務器。
[SwitchB] interface vlan-interface 1
[SwitchB-Vlan-interface1] ip address 10.165.87.136 255.255.255.0
[SwitchB-Vlan-interface1] quit
# 設置SSH客戶端登錄用戶界麵的認證方式為AAA認證。
[SwitchB] user-interface vty 0 15
[SwitchB-ui-vty0-15] authentication-mode scheme
# 設置Switch B上遠程用戶登錄協議為SSH。
[SwitchB-ui-vty0-15] protocol inbound ssh
[SwitchB-ui-vty0-15] quit
# 創建本地用戶client001。
[SwitchB] local-user client001
[SwitchB-luser-client001] password simple aabbcc
[SwitchB-luser-client001] service-type ssh
[SwitchB-luser-client001] authorization-attribute level 3
[SwitchB-luser-client001] quit
# 配置SSH用戶client001的服務類型為Stelnet,認證方式為password認證。(此步驟可以不配置)
[SwitchB] ssh user client001 service-type stelnet authentication-type password
(2) SSH客戶端建立與SSH服務器的連接
# 配置VLAN接口1的IP地址。
<SwitchA> system-view
[SwitchA] interface vlan-interface 1
[SwitchA-Vlan-interface1] ip address 10.165.87.137 255.255.255.0
[SwitchA-Vlan-interface1] quit
[SwitchA] quit
· 如果客戶端支持首次認證,則可以直接與服務器建立連接。
# 建立到服務器10.165.87.136的SSH連接。
<SwitchA> 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. Continue? [Y/N]:y
Do you want to save the server public key? [Y/N]:n
Enter password:
輸入正確的密碼之後,即可成功登錄到Switch B上。
· 如果客戶端不支持首次認證,則需要進行如下配置。
# 配置客戶端對服務器不進行首次認證。
[SwitchA] undo ssh client first-time
# 在客戶端配置SSH服務器端的主機公鑰。在公鑰編輯視圖輸入服務器端的主機公鑰,即在服務器端通過display public-key local dsa public命令顯示的公鑰內容。
[SwitchA] public-key peer key1
[SwitchA-pkey-public-key] public-key-code begin
[SwitchA-pkey-key-code]308201B73082012C06072A8648CE3804013082011F0281810
0D757262C4584C44C211F18BD96E5F0
[SwitchA-pkey-key-code]61C4F0A423F7FE6B6B85B34CEF72CE14A0D3A5222FE08CECE
65BE6C265854889DC1EDBD13EC8B274
[SwitchA-pkey-key-code]DA9F75BA26CCB987723602787E922BA84421F22C3C89CB9B0
6FD60FE01941DDD77FE6B12893DA76E
[SwitchA-pkey-key-code]EBC1D128D97F0678D7722B5341C8506F358214B16A2FAC4B3
68950387811C7DA33021500C773218C
[SwitchA-pkey-key-code]737EC8EE993B4F2DED30F48EDACE915F0281810082269009E
14EC474BAF2932E69D3B1F18517AD95
[SwitchA-pkey-key-code]94184CCDFCEAE96EC4D5EF93133E84B47093C52B20CD35D02
492B3959EC6499625BC4FA5082E22C5
[SwitchA-pkey-key-code]B374E16DD00132CE71B020217091AC717B612391C76C1FB2E
88317C1BD8171D41ECB83E210C03CC9
[SwitchA-pkey-key-code]B32E810561C21621C73D6DAAC028F4B1585DA7F42519718CC
9B09EEF0381840002818000AF995917
[SwitchA-pkey-key-code]E1E570A3F6B1C2411948B3B4FFA256699B3BF871221CC9C5D
F257523777D033BEE77FC378145F2AD
[SwitchA-pkey-key-code]D716D7DB9FCABB4ADBF6FB4FDB0CA25C761B308EF53009F71
01F7C62621216D5A572C379A32AC290
[SwitchA-pkey-key-code]E55B394A217DA38B65B77F0185C8DB8095522D1EF044B465E
8716261214A5A3B493E866991113B2D
[SwitchA-pkey-key-code]485348
[SwitchA-pkey-key-code] public-key-code end
[SwitchA-pkey-public-key] peer-public-key end
# 指定服務器10.165.87.136對應的主機公鑰名稱為key1。
[SwitchA] ssh client authentication server 10.165.87.136 assign publickey key1
[SwitchA] quit
# 建立到服務器10.165.87.136的SSH連接。
<SwitchA> ssh2 10.165.87.136
Username: client001
Trying 10.165.87.136
Press CTRL+K to abort
Connected to 10.165.87.136...
Enter password:
輸入正確的密碼之後,即可成功登錄到Switch B上。
如圖1-11,配置Switch A作為客戶端,采用SSH協議登錄到Switch B上。SSH用戶采用的認證方式為publickey認證,公鑰算法為DSA。
圖1-11 設備作為SSH客戶端配置組網圖
在服務器的配置過程中需要指定客戶端的公鑰信息,因此建議首先完成客戶端密鑰對的配置,再進行服務器的配置。
(1) 配置SSH客戶端
# 配置VLAN接口1的IP地址。
<SwitchA> system-view
[SwitchA] interface vlan-interface 1
[SwitchA-Vlan-interface1] ip address 10.165.87.137 255.255.255.0
[SwitchA-Vlan-interface1] quit
# 生成DSA密鑰對。
[SwitchA] public-key local create dsa
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is greater than 512,
It will take a few minutes.
Press CTRL+C to abort.
Input the bits of the modulus[default = 1024]:
Generating Keys...
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++
# 將生成的DSA主機公鑰導出到指定文件key.pub中。
[SwitchA] public-key local export dsa ssh2 key.pub
[SwitchA] quit
客戶端生成密鑰對後,需要將保存的公鑰文件key.pub通過FTP/TFTP方式上傳到服務器。
(2) 配置SSH服務器
# 生成RSA密鑰對。
<SwitchB> system-view
[SwitchB] public-key local create rsa
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is greater than 512,
It will take a few minutes.
Press CTRL+C to abort.
Input the bits of the modulus[default = 1024]:
Generating Keys...
++++++++
++++++++++++++
+++++
++++++++
# 生成DSA密鑰對。
[SwitchB] public-key local create dsa
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is greater than 512,
It will take a few minutes.
Press CTRL+C to abort.
Input the bits of the modulus[default = 1024]:
Generating Keys...
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++
# 啟動SSH服務器。
[SwitchB] ssh server enable
# 配置VLAN接口1的IP地址,客戶端將通過該地址連接SSH服務器。
[SwitchB] interface vlan-interface 1
[SwitchB-Vlan-interface1] ip address 10.165.87.136 255.255.255.0
[SwitchB-Vlan-interface1] quit
# 設置SSH客戶端登錄用戶界麵的認證方式為AAA認證。
[SwitchB] user-interface vty 0 15
[SwitchB-ui-vty0-15] authentication-mode scheme
# 設置Switch B上遠程用戶登錄協議為SSH。
[SwitchB-ui-vty0-15] protocol inbound ssh
# 設置用戶能訪問的命令級別為3。
[SwitchB-ui-vty0-15] user privilege level 3
[SwitchB-ui-vty0-15] quit
# 從文件key.pub中導入遠端的公鑰。
[SwitchB] public-key peer Switch001 import sshkey key.pub
# 設置SSH用戶client002的認證方式為publickey,並指定公鑰為Switch001。
[SwitchB] ssh user client002 service-type stelnet authentication-type publickey assign publickey Switch001
(3) SSH客戶端建立與SSH服務器的連接
# 建立到服務器10.165.87.136的SSH連接。
<SwitchA> ssh2 10.165.87.136
Username: client002
Trying 10.165.87.136 ...
Press CTRL+K to abort
Connected to 10.165.87.136 ...
The Server is not authenticated. Continue? [Y/N]:y
Do you want to save the server public key? [Y/N]:n
之後,用戶就可成功登錄到Switch B上。
SFTP是Secure FTP的簡稱,是SSH 2.0中新增的功能。
SFTP建立在SSH連接的基礎之上,它使得遠程用戶可以安全地登錄設備,進行文件管理和文件傳送等操作,為數據傳輸提供了更高的安全保障。同時,由於設備支持作為客戶端的功能,用戶可以從本地設備安全登錄到遠程設備上,進行文件的安全傳輸。
· 已經完成SSH服務器的配置,具體配置步驟請參見“1.2 配置設備作為SSH服務器”。
· SSH用戶的服務類型設置為sftp或者all。具體配置步驟請參見“1.2.6 配置SSH用戶並指定服務類型和認證方式”。
該配置任務用於啟動SFTP服務,使客戶端能用SFTP的方式登錄到服務器。
表2-1 啟動SFTP服務器
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
啟動SFTP服務器 |
sftp server enable |
必選 缺省情況下,SFTP服務器處於關閉狀態 |
設備作為SFTP服務器時,同時隻能有一個用戶訪問SFTP服務器。如果以WinSCP作為SFTP客戶端,則無法直接編輯服務器上的文件,需要采用將服務器上的文件下載到本地,在本地修改後上傳到服務器的方式實現對文件的編輯。
當SFTP用戶連接的空閑時間超過設定的閾值後,係統會自動斷開此用戶的連接,從而有效避免用戶長期占用連接而不進行任何操作。
表2-2 配置SFTP用戶連接的空閑超時時間
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
設置SFTP用戶連接的空閑超時時間 |
sftp server idle-timeout time-out-value |
可選 缺省情況下,SFTP用戶連接的空閑超時時間為10分鍾 |
用戶可以通過以下配置,使SFTP客戶端隻能使用指定接口的IP地址或指定IP地址作為源地址建立與SFTP服務器的連接,增加了業務的可管理性。
表2-3 為SFTP客戶端指定IP地址或源接口
操作 |
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
|
為SFTP客戶端指定源IP地址或源接口 |
為SFTP客戶端指定源IPv4地址或源接口 |
sftp client source { ip ip-address | interface interface-type interface-number } |
二者必選其一 缺省情況下,客戶端用設備路由指定的接口地址訪問SFTP服務器 |
為SFTP客戶端指定源IPv6地址或源接口 |
sftp client ipv6 source { ipv6 ipv6-address | interface interface-type interface-number } |
該配置任務用來啟動SFTP客戶端程序,與遠程SFTP服務器建立連接,並進入到SFTP客戶端視圖。
表2-4 建立與SFTP服務器的連接
操作 |
命令 |
說明 |
與遠程SFTP服務器建立連接,並進入SFTP客戶端視圖 |
非FIPS模式下: sftp [ ipv6 ] server [ port-number ] [ identity-key { dsa | rsa } | prefer-ctos-cipher { 3des | aes128 | des } | prefer-ctos-hmac { md5 | md5-96 | sha1 | sha1-96 } | prefer-kex { dh-group-exchange | dh-group1 | dh-group14 } | prefer-stoc-cipher { 3des | aes128 | des } | prefer-stoc-hmac { md5 | md5-96 | sha1 | sha1-96 } ] * FIPS模式下: sftp [ ipv6 ] server [ port-number ] [ identity-key rsa | prefer-ctos-cipher { aes128 | aes256 } | prefer-ctos-hmac { sha1 | sha1-96 } | prefer-kex dh-group14 | prefer-stoc-cipher { aes128 | aes256 } | prefer-stoc-hmac { sha1 | sha1-96 } ] * |
必選 請在用戶視圖下執行此命令 |
SFTP目錄操作包括:改變或顯示當前的工作目錄、顯示指定目錄下的文件或目錄信息、改變服務器上指定的文件夾的名字、創建或刪除目錄。
表2-5 SFTP目錄操作
操作 |
命令 |
說明 |
進入SFTP客戶端視圖 |
具體命令請參考2.3.2 |
必選 請在用戶視圖下執行此命令 |
改變遠程SFTP服務器上的工作路徑 |
cd [ remote-path ] |
可選 |
返回到上一級目錄 |
cdup |
可選 |
顯示遠程SFTP服務器上的當前工作目錄 |
pwd |
可選 |
顯示指定目錄下的文件列表 |
dir [ -a | -l ] [ remote-path ] |
可選 dir和ls兩條命令的作用相同 |
ls [ -a | -l ] [ remote-path ] |
||
改變SFTP服務器上指定的目錄的名字 |
rename oldname newname |
可選 |
在遠程SFTP服務器上創建新的目錄 |
mkdir remote-path |
可選 |
刪除SFTP服務器上指定的目錄 |
rmdir remote-path&<1-10> |
可選 |
SFTP文件操作包括:改變文件名、下載文件、上傳文件、顯示文件列表、刪除文件。
表2-6 SFTP文件操作
操作 |
命令 |
說明 |
進入SFTP客戶端視圖 |
具體命令請參考2.3.2 |
必選 請在用戶視圖下執行此命令 |
改變SFTP服務器上指定的文件的名字 |
rename old-name new-name |
可選 |
從遠程服務器上下載文件並存儲在本地 |
get remote-file [ local-file ] |
可選 |
將本地的文件上傳到遠程SFTP服務器 |
put local-file [ remote-file ] |
可選 |
顯示指定目錄下的文件 |
dir [ -a | -l ] [ remote-path ] |
可選 dir和ls兩條命令的作用相同 |
ls [ -a | -l ] [ remote-path ] |
||
刪除SFTP服務器上指定的文件 |
delete remote-file&<1-10> |
可選 delete和remove兩條命令的功能相同 |
remove remote-file&<1-10> |
本配置用於顯示命令的幫助信息,如命令格式、參數配置等。
操作 |
命令 |
說明 |
進入SFTP客戶端視圖 |
具體命令請參考2.3.2 |
必選 請在用戶視圖下執行此命令 |
顯示SFTP客戶端命令的幫助信息 |
help [ all | command-name ] |
必選 |
表2-8 終止與遠程SFTP服務器的連接
操作 |
命令 |
說明 |
進入SFTP客戶端視圖 |
具體命令請參考2.3.2 |
必選 請在用戶視圖下執行此命令 |
終止與遠程SFTP服務器的連接,並退回用戶視圖 |
bye |
必選其一 bye,exit和quit三條命令的功能相同 |
exit |
||
quit |
如圖2-1,Switch A和Switch B之間建立SSH連接,Switch A作為SFTP客戶端登錄到Switch B,進行文件管理和文件傳送等操作。SSH用戶采用的認證方式為publickey認證,公鑰算法為RSA。
圖2-1 設備作為SFTP客戶端組網圖
在服務器的配置過程中需要指定客戶端的公鑰信息,因此建議首先完成客戶端密鑰對的配置,再進行服務器的配置。
(1) 配置SFTP客戶端
# 配置VLAN接口1的IP地址。
<SwitchA> system-view
[SwitchA] interface vlan-interface 1
[SwitchA-Vlan-interface1] ip address 192.168.0.2 255.255.255.0
[SwitchA-Vlan-interface1] quit
# 生成RSA密鑰對。
[SwitchA] public-key local create rsa
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is greater than 512,
It will take a few minutes.
Press CTRL+C to abort.
Input the bits of the modulus[default = 1024]:
Generating Keys...
++++++++
++++++++++++++
+++++
++++++++
# 將生成的RSA主機公鑰導出到指定文件pubkey中。
[SwitchA] public-key local export rsa ssh2 pubkey
[SwitchA] quit
客戶端生成密鑰對後,需要將保存的公鑰文件pubkey通過FTP/TFTP方式上傳到服務器。
(2) 配置SFTP服務器
# 生成RSA密鑰對。
<SwitchB> system-view
[SwitchB] public-key local create rsa
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is greater than 512,
It will take a few minutes.
Press CTRL+C to abort.
Input the bits of the modulus[default = 1024]:
Generating Keys...
++++++++
++++++++++++++
+++++
++++++++
# 生成DSA密鑰對。
[SwitchB] public-key local create dsa
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is greater than 512,
It will take a few minutes.
Press CTRL+C to abort.
Input the bits of the modulus[default = 1024]:
Generating Keys...
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++
# 啟動SSH服務器。
[SwitchB] ssh server enable
# 啟動SFTP服務器。
[SwitchB] sftp server enable
# 配置VLAN接口1的IP地址,客戶端將通過該地址連接SSH服務器。
[SwitchB] interface vlan-interface 1
[SwitchB-Vlan-interface1] ip address 192.168.0.1 255.255.255.0
[SwitchB-Vlan-interface1] quit
# 設置SSH客戶端登錄用戶界麵的認證方式為AAA認證。
[SwitchB] user-interface vty 0 15
[SwitchB-ui-vty0-15] authentication-mode scheme
# 設置Switch B上遠程用戶登錄協議為SSH。
[SwitchB-ui-vty0-15] protocol inbound ssh
[SwitchB-ui-vty0-15] quit
# 從文件pubkey中導入遠端的公鑰。
[SwitchB] public-key peer Switch001 import sshkey pubkey
# 設置SSH用戶client001的服務類型為SFTP,認證方式為publickey,並指定公鑰為Switch001,工作目錄為flash:/。
[SwitchB] ssh user client001 service-type sftp authentication-type publickey assign publickey Switch001 work-directory flash:/
(3) SFTP客戶端建立與SFTP服務器端的連接
# 與遠程SFTP服務器建立連接,進入SFTP Client視圖。
<SwitchA> sftp 192.168.0.1 identity-key rsa
Input Username: client001
Trying 192.168.0.1 ...
Press CTRL+K to abort
Connected to 192.168.0.1 ...
The Server is not authenticated. Continue? [Y/N]:y
Do you want to save the server public key? [Y/N]:n
sftp-client>
# 顯示服務器的當前目錄,刪除文件z,並檢查此文件是否刪除成功。
sftp-client> dir
-rwxrwxrwx 1 noone nogroup 1759 Aug 23 06:52 config.cfg
-rwxrwxrwx 1 noone nogroup 225 Aug 24 08:01 pubkey2
-rwxrwxrwx 1 noone nogroup 283 Aug 24 07:39 pubkey
drwxrwxrwx 1 noone nogroup 0 Sep 01 06:22 new
-rwxrwxrwx 1 noone nogroup 225 Sep 01 06:55 pub
-rwxrwxrwx 1 noone nogroup 0 Sep 01 08:00 z
sftp-client> delete z
The following File will be deleted:
/z
Are you sure to delete it? [Y/N]:y
This operation may take a long time.Please wait...
File successfully Removed
sftp-client> dir
-rwxrwxrwx 1 noone nogroup 1759 Aug 23 06:52 config.cfg
-rwxrwxrwx 1 noone nogroup 225 Aug 24 08:01 pubkey2
-rwxrwxrwx 1 noone nogroup 283 Aug 24 07:39 pubkey
drwxrwxrwx 1 noone nogroup 0 Sep 01 06:22 new
-rwxrwxrwx 1 noone nogroup 225 Sep 01 06:55 pub
# 新增目錄new1,並檢查新目錄是否創建成功。
sftp-client> mkdir new1
New directory created
sftp-client> dir
-rwxrwxrwx 1 noone nogroup 1759 Aug 23 06:52 config.cfg
-rwxrwxrwx 1 noone nogroup 225 Aug 24 08:01 pubkey2
-rwxrwxrwx 1 noone nogroup 283 Aug 24 07:39 pubkey
drwxrwxrwx 1 noone nogroup 0 Sep 01 06:22 new
-rwxrwxrwx 1 noone nogroup 225 Sep 01 06:55 pub
drwxrwxrwx 1 noone nogroup 0 Sep 02 06:30 new1
# 將目錄名new1更名為new2,並查看是否更名成功。
sftp-client> rename new1 new2
File successfully renamed
sftp-client> dir
-rwxrwxrwx 1 noone nogroup 1759 Aug 23 06:52 config.cfg
-rwxrwxrwx 1 noone nogroup 225 Aug 24 08:01 pubkey2
-rwxrwxrwx 1 noone nogroup 283 Aug 24 07:39 pubkey
drwxrwxrwx 1 noone nogroup 0 Sep 01 06:22 new
-rwxrwxrwx 1 noone nogroup 225 Sep 01 06:55 pub
drwxrwxrwx 1 noone nogroup 0 Sep 02 06:33 new2
# 從服務器上下載文件pubkey2到本地,並更名為public。
sftp-client> get pubkey2 public
Remote file:/pubkey2 ---> Local file: public
Downloading file successfully ended
# 將本地文件pu上傳到服務器上,更名為puk,並查看上傳是否成功。
sftp-client> put pu puk
Local file:pu ---> Remote file: /puk
Uploading file successfully ended
sftp-client> dir
-rwxrwxrwx 1 noone nogroup 1759 Aug 23 06:52 config.cfg
-rwxrwxrwx 1 noone nogroup 225 Aug 24 08:01 pubkey2
-rwxrwxrwx 1 noone nogroup 283 Aug 24 07:39 pubkey
drwxrwxrwx 1 noone nogroup 0 Sep 01 06:22 new
drwxrwxrwx 1 noone nogroup 0 Sep 02 06:33 new2
-rwxrwxrwx 1 noone nogroup 283 Sep 02 06:35 pub
-rwxrwxrwx 1 noone nogroup 283 Sep 02 06:36 puk
sftp-client>
# 退出SFTP。
sftp-client> quit
Bye
Connection closed.
<SwitchA>
如圖2-2,Host和Switch之間建立SSH連接,Host作為SFTP客戶端登錄到Switch,進行文件管理和文件傳送等操作,用戶名為client002,密碼為aabbcc,用戶名和密碼保存在本地設備上。
圖2-2 設備作為SFTP服務器組網圖
(1) 配置SFTP服務器
# 生成RSA密鑰對。
<Switch> system-view
[Switch] public-key local create rsa
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is greater than 512,
It will take a few minutes.
Press CTRL+C to abort.
Input the bits of the modulus[default = 1024]:
Generating Keys...
++++++++
++++++++++++++
+++++
++++++++
# 生成DSA密鑰對。
[Switch] public-key local create dsa
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is greater than 512,
It will take a few minutes.
Press CTRL+C to abort.
Input the bits of the modulus[default = 1024]:
Generating Keys...
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++
# 啟動SSH服務器。
[Switch] ssh server enable
# 啟動SFTP服務器。
[Switch] sftp server enable
# 配置VLAN接口1的IP地址,客戶端將通過該地址連接SSH服務器。
[Switch] interface vlan-interface 1
[Switch-Vlan-interface1] ip address 192.168.1.45 255.255.255.0
[Switch-Vlan-interface1] quit
# 設置SSH客戶端登錄用戶界麵的認證方式為AAA認證。
[Switch] user-interface vty 0 15
[Switch-ui-vty0-15] authentication-mode scheme
# 設置Switch上遠程用戶登錄協議為SSH。
[Switch-ui-vty0-15] protocol inbound ssh
[Switch-ui-vty0-15] quit
# 創建本地用戶client002。
[Switch] local-user client002
[Switch-luser-client002] password simple aabbcc
[Switch-luser-client002] service-type ssh
[Switch-luser-client002] quit
# 配置SSH用戶認證方式為password,服務類型為SFTP。
[Switch] ssh user client002 service-type sftp authentication-type password
(2) SFTP客戶端建立與SFTP服務器的連接
· SFTP客戶端軟件有很多,本文中僅以客戶端軟件PuTTY0.58中的PSFTP為例,說明SFTP客戶端的配置方法。
· PSFTP隻支持password認證,不支持publickey認證
# 建立與SFTP服務器的連接。
打開psftp.exe程序,出現如圖2-3所示的客戶端配置界麵。輸入如下命令:
open 192.168.1.45
根據提示輸入用戶名client002,密碼aabbcc,即可登錄SFTP服務器。
圖2-3 SFTP客戶端登錄界麵
SCP是Secure Copy的簡稱,提供安全的文件複製功能。目前僅支持基於SSH 2.0的文件複製。
SCP建立在SSH連接的基礎之上,設備作為SCP服務器時,可使得遠程用戶安全地登錄設備,進行文件上傳或下載操作;設備作為SCP客戶端時,用戶可以從本地設備安全登錄到遠程服務器,進行文件的安全傳輸。
· 具體配置步驟請參見“1.2 配置設備作為SSH服務器”。
· SSH用戶的服務類型設置為scp或者all。具體配置步驟請參見“1.2.6 配置SSH用戶並指定服務類型和認證方式”。
設備作為SCP服務器時,同時僅允許有一個FTP、SFTP或SCP用戶訪問SCP服務器。
該配置任務用來啟動SCP客戶端程序,與遠程SCP服務器傳輸文件。
表3-1 建立與SCP服務器的連接
操作 |
命令 |
說明 |
|
與遠程SCP服務器傳輸文件 |
向遠程SCP服務器上傳文件 |
非FIPS模式下: scp [ ipv6 ] server [ port-number ] put source-file-path [ destination-file-path ] [ identity-key { dsa | rsa } | prefer-ctos-cipher { 3des | aes128 | des } | prefer-ctos-hmac { md5 | md5-96 | sha1 | sha1-96 } | prefer-kex { dh-group-exchange | dh-group1 | dh-group14 } | prefer-stoc-cipher { 3des | aes128 | des } | prefer-stoc-hmac { md5 | md5-96 | sha1 | sha1-96 } ] * FIPS模式下: scp [ ipv6 ] server [ port-number ] put source-file-path [ destination-file-path ] [ identity-key rsa | prefer-ctos-cipher { aes128 | aes256 } | prefer-ctos-hmac { sha1 | sha1-96 } | prefer-kex dh-group14 | prefer-stoc-cipher { aes128 | aes256 } | prefer-stoc-hmac { sha1 | sha1-96 } ] * |
二者必選其一 請在用戶視圖下執行此命令 |
從遠程SCP服務器下載文件 |
非FIPS模式下: scp [ ipv6 ] server [ port-number ] get source-file-path [ destination-file-path ] [ identity-key { dsa | rsa } | prefer-ctos-cipher { 3des | aes128 | des } | prefer-ctos-hmac { md5 | md5-96 | sha1 | sha1-96 } | prefer-kex { dh-group-exchange | dh-group1 | dh-group14 } | prefer-stoc-cipher { 3des | aes128 | des } | prefer-stoc-hmac { md5 | md5-96 | sha1 | sha1-96 } ] * FIPS模式下: scp [ ipv6 ] server [ port-number ] get source-file-path [ destination-file-path ] [ identity-key rsa | prefer-ctos-cipher { aes128 | aes256 } | prefer-ctos-hmac { sha1 | sha1-96 } | prefer-kex dh-group14 | prefer-stoc-cipher { aes128 | aes256 } | prefer-stoc-hmac { sha1 | sha1-96 } ] * |
如圖3-1,Switch A作為SCP客戶端從Switch B下載文件remote.bin,用戶采用的認證方式為password認證,用戶名為test。
圖3-1 設備作為SCP客戶端組網圖
(1) 配置SCP客戶端
# 配置VLAN接口1的IP地址。
<SwitchA> system-view
[SwitchA] interface vlan-interface 1
[SwitchA-Vlan-interface1] ip address 192.168.0.2 255.255.255.0
[SwitchA-Vlan-interface1] quit
(2) 下載文件
# 下載遠端的remote.bin文件,下載到本地後更名為local.bin。
<SwitchA> scp 192.168.0.1 get remote.bin local.bin
Username: test
Trying 192.168.0.1 ...
Press CTRL+K to abort
Connected to 192.168.0.1 ...
The Server is not authenticated. Continue? [Y/N]:y
Do you want to save the server public key? [Y/N]:n
Enter password:
18471 bytes transfered in 0.001 seconds.
如圖3-2,Host和Switch之間建立SSH連接,Host作為SCP客戶端與SCP服務器Switch傳輸文件。所使用的用戶名為test,密碼為aabbcc,用戶名和密碼保存在本地設備上。
圖3-2 設備作為SCP服務器組網圖
(1) 配置SCP服務器
# 生成RSA密鑰對。
<Switch> system-view
[Switch] public-key local create rsa
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is greater than 512,
It will take a few minutes.
Press CTRL+C to abort.
Input the bits of the modulus[default = 1024]:
Generating Keys...
++++++++
++++++++++++++
+++++
++++++++
# 生成DSA密鑰對。
[Switch] public-key local create dsa
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is greater than 512,
It will take a few minutes.
Press CTRL+C to abort.
Input the bits of the modulus[default = 1024]:
Generating Keys...
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++
# 啟動SSH服務器。
[Switch] ssh server enable
# 配置VLAN接口1的IP地址,客戶端將通過該地址連接SSH服務器。
[Switch] interface vlan-interface 1
[Switch-Vlan-interface1] ip address 192.168.1.45 255.255.255.0
[Switch-Vlan-interface1] quit
# 設置SSH客戶端登錄用戶界麵的認證方式為AAA認證。
[Switch] user-interface vty 0 15
[Switch-ui-vty0-15] authentication-mode scheme
# 設置SSH客戶端登錄用戶界麵支持包括SSH在內的所有協議。
[Switch-ui-vty0-15] protocol inbound all
[Switch-ui-vty0-15] quit
# 創建本地用戶test。
[Switch] local-user test
[Switch-luser-test] password simple aabbcc
[Switch-luser-test] service-type ssh
[Switch-luser-test] quit
# 配置SSH用戶認證方式為password,服務類型為SCP。
[Switch] ssh user test service-type scp authentication-type password
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!