目錄

簡介

因應措施

背景資訊

配置SSH和SCP

疑難排解

簡介

本文檔介紹如何使用 — O選項確保從OpenSSH9.0上的客戶端成功通過SCP到Cisco IOS® XE裝置。

因應措施

-O選項可用於較新版本的OpenSSH，並使用SCP命令強制使用SCP進行檔案傳輸，而不是SFTP。

scp -O file.ext username@192.0.2.1:file.ext

背景資訊

SCP可用於在SCP客戶端和SCP伺服器之間傳輸檔案。SCP使用SSH會話進行身份驗證。  一旦使用者通過身份驗證，就會開啟另一個通道，以便使用SCP傳輸檔案。  在OpenSSH9.0及更高版本中，SSH仍用於身份驗證，但使用SFTP而不是SCP進行檔案傳輸。  這會造成目前版本的Cisco IOS XE出現問題，因為目前不支援透過SSH傳輸檔案。SSH會話成功，系統日誌緩衝區中存在登入成功日誌。  但是，當SCP客戶端嘗試啟動SFTP傳輸時，連線會突然關閉。

配置SSH和SCP

使用SCP客戶端將檔案傳輸到Cisco IOS XE裝置的先決條件。

- 必須配置SSH

- 必須配置本地登入或AAA

- 使用者需要許可權級別15才能使用SCP

- 必須啟用SCP伺服器

以下是組態範例

# configure SSH

hostname c8000v

ip domain name cisco.com

crypto key generate rsa

# optional - use ssh version 2

ip ssh version 2

# verify the SSH server is online

show ip ssh

# create a user with privilege level 15

username cisco privilege 15 password 0 cisco

# configure the vty line to use local login and allow ssh

line vty 0 4

login local

transport input ssh

# Enable the SCP server

ip scp server enable

提示：在此處可找到有關SSH配置的其他信息。

附註：可以使用aaa代替本地登入。

配置完成後，您可以在裝置上使用可到達的IP地址通過SSH/SCP連線到裝置。

在Linux裝置上，您可以結合裝置的IP地址使用以下命令：

- ssh cisco@192.0.2.1

- scp file.ext cisco@192.0.2.1:file.ext

附註：預設情況下，檔案會複製到bootflash。

疑難排解

如果遇到問題，請檢查以下症狀：

1.客戶端的OpenSSH版本顯示9.0或更高版本。

jeff@jeff-virtual-machine:~$ ssh -V

OpenSSH_9.0p1 Ubuntu-1ubuntu7, OpenSSL 3.0.5 5 Jul 2022

2.客戶端顯示連線突然關閉，沒有任何錯誤或檔案傳輸。

jeff@jeff-virtual-machine:~$ scp test.txt cisco@192.0.2.1:test.txt

(cisco@192.0.2.1) Password:

scp: Connection closed

3.在路由器上，系統日誌顯示SSH連線成功，但檔案未傳輸。

*Mar 26 18:06:57.290: %SEC_LOGIN-5-LOGIN_SUCCESS: Login Success [user: cisco] [Source: 192.0.2.2] [localport: 22] at 18:06:57 UTC Sun Mar 26 2023

4.  路由器上的SCP調試未顯示任何資訊。

c8000v#debug ip scp

Incoming SCP debugging is on

5.  帶有 — v選項的SCP顯示傳送SFTP子系統的調試日誌。

scp -v test.txt cisco@192.0.2.1:test.txt

Executing: program /usr/bin/ssh host 192.0.2.1, user cisco, command sftp

OpenSSH_9.0p1 Ubuntu-1ubuntu7, OpenSSL 3.0.5 5 Jul 2022

<snip>

debug1: Entering interactive session.

debug1: pledge: filesystem

debug1: Sending environment.

debug1: channel 0: setting env LANG = "en_US.UTF-8"

debug1: Sending subsystem: sftp

debug1: client_input_channel_req: channel 0 rtype exit-status reply 0

scp: Connection closed

6.路由器上的ssh調試顯示SSH查詢SFTP子系統，然後關閉連線。

c8000v#debug ip ssh detail

ssh detail messages debugging is on

*Mar 24 14:25:05.074: SSH: MD5 compliance exception Registered

*Mar 24 14:25:05.074: SSH1: starting SSH control process

*Mar 24 14:25:05.074: SSH1: sent protocol version id SSH-2.0-Cisco-1.25

*Mar 24 14:25:05.075: SSH1: protocol version id is - SSH-2.0-OpenSSH_9.0p1 Ubuntu-1ubuntu7 <snip>

*Mar 24 14:25:07.370: %SEC_LOGIN-5-LOGIN_SUCCESS: Login Success [user: cisco] [Source: 10.10.10.10] [localport: 22] at 14:25:07 UTC Fri Mar 24 2023

*Mar 24 14:25:07.379: SSH2 1: channel open request *Mar 24 14:25:07.389: SSH2 1: env request

*Mar 24 14:25:07.389: SSH2 1: subsystem request *Mar 24 14:25:07.389: SSH2 1: subsystem message received

*Mar 24 14:25:07.389: SSH2 1: searching for subsystem sftp for vty

*Mar 24 14:25:07.490: SSH1: Session terminated normally

7.最後，使用 — O選項的SCP成功。

jeff@jeff-virtual-machine:~$ scp -O test.txt cisco@192.0.2.1:test.txt

(cisco@192.0.2.1) Password:

test.txt 100% 28 2.7KB/s 00:00