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:
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