Inhoud

Inleiding

Tijdelijke oplossing

Achtergrondinformatie

SSH en SCP configureren

Problemen oplossen

Inleiding

Dit document beschrijft hoe de optie -O moet worden gebruikt om succesvolle SCP van clients op OpenSSH9.0 naar Cisco IOS® XE-apparaten te garanderen.

Tijdelijke oplossing

De optie -O kan worden gebruikt op nieuwere versies van OpenSSH met de SCP-opdracht om SCP te dwingen om te worden gebruikt voor de bestandsoverdracht in plaats van SFTP.

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

Achtergrondinformatie

SCP kan worden gebruikt om bestanden over te dragen tussen een SCP-client en een SCP-server. SCP gebruikt een SSH-sessie voor verificatie.  Zodra de gebruiker is geverifieerd wordt er een ander kanaal geopend om het bestand met SCP over te dragen.  In OpenSSH9.0 en hogere versies wordt SSH nog steeds gebruikt voor verificatie, maar SFTP wordt gebruikt voor de bestandsoverdracht in plaats van SCP.  Dit leidt tot een probleem met huidige versies van Cisco IOS XE omdat SFTP momenteel niet wordt ondersteund om bestanden over te brengen via SSH. De SSH-sessie is succesvol en er is een login succeslogboek in de syslog buffer.  De verbinding wordt echter abrupt verbroken wanneer de SCP-client de SFTP-overdracht probeert te starten.

SSH en SCP configureren

Voorwaarden voor het gebruik van een SCP-client om een bestand naar een Cisco IOS XE-apparaat over te dragen.

- SSH moet worden geconfigureerd

- Lokale aanmelding of AAA moet worden geconfigureerd

- Privilege level 15 is nodig voor de gebruiker naar SCP

- SCP-server moet zijn ingeschakeld

Hier is een voorbeeldconfiguratie

# 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

Tip: Aanvullende informatie over SSH-configuratie vindt u hier.

Opmerking: aaa kan worden gebruikt in plaats van lokale login.

Als de configuratie is voltooid, kunt u SSH/SCP naar het apparaat met een bereikbaar IP-adres op het apparaat.

Vanaf een Linux-apparaat kunt u deze opdrachten gebruiken met het IP-adres voor het apparaat:

- ssh cisco@192.0.2.1

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

Opmerking: Standaard wordt het bestand gekopieerd naar bootflash.

Problemen oplossen

Als het probleem zich voordoet, controleer dan op deze symptomen:

1. De OpenSSH-versie van de client toont 9.0 of hoger.

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

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

2. De client toont dat de verbinding abrupt wordt gesloten zonder fouten of bestandsoverdracht.

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

(cisco@192.0.2.1) Password:

scp: Connection closed

3. Op de router toont een syslog de succesvolle SSH-verbinding maar het bestand is niet overgebracht.

*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 debugs op de router tonen geen informatie.

c8000v#debug ip scp

Incoming SCP debugging is on

5.  SCP met -v optie toont debug logs verzenden van het SFTP subsysteem.

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 debugs op de router toont SSH zoekt een SFTP subsysteem en sluit dan de verbinding.

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. Uiteindelijk slaagt SCP met de -O optie.

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