Table des matières

Introduction

Solution de contournement

Informations générales

Configurer SSH et SCP

Dépannage

Introduction

Ce document décrit comment utiliser l'option -O pour assurer la SCP réussie des clients sur OpenSSH9.0 aux périphériques Cisco IOS® XE.

Solution de contournement

L'option -O peut être utilisée sur les versions plus récentes d'OpenSSH avec la commande SCP pour forcer SCP à être utilisé pour le transfert de fichiers au lieu de SFTP.

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

Informations générales

SCP peut être utilisé pour transférer des fichiers entre un client SCP et un serveur SCP. SCP utilise une session SSH pour l'authentification.  Une fois l'utilisateur authentifié, un autre canal est ouvert pour transférer le fichier avec SCP.  Dans OpenSSH9.0 et les versions ultérieures, SSH est toujours utilisé pour l'authentification, mais SFTP est utilisé pour le transfert de fichiers au lieu de SCP.  Cela crée un problème avec les versions actuelles de Cisco IOS XE parce que SFTP n'est pas actuellement pris en charge pour transférer des fichiers sur SSH. La session SSH réussit et il y a un journal de réussite de connexion dans le tampon syslog.  Cependant, la connexion se ferme brusquement lorsque le client SCP tente de démarrer le transfert SFTP.

Configurer SSH et SCP

Prérequis pour utiliser un client SCP pour transférer un fichier vers un périphérique Cisco IOS XE.

- SSH doit être configuré

- La connexion locale ou AAA doit être configurée

- Le niveau de privilège 15 est requis pour que l'utilisateur puisse accéder à la SCP

- Le serveur SCP doit être activé

Voici un exemple de configuration

# 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

Conseil : Des informations supplémentaires sur la configuration SSH sont disponibles ici.

Remarque : aaa peut être utilisé à la place de la connexion locale.

Une fois la configuration terminée, vous pouvez établir une connexion SSH/SCP vers le périphérique avec une adresse IP accessible sur le périphérique.

À partir d'un périphérique Linux, vous pouvez utiliser ces commandes avec l'adresse IP du périphérique :

- ssh cisco@192.0.2.1

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

Remarque : Par défaut, le fichier est copié dans bootflash.

Dépannage

Si le problème se produit, recherchez les symptômes suivants :

1. La version OpenSSH du client affiche 9.0 ou une version ultérieure.

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

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

2. Le client montre que la connexion se ferme brusquement sans erreur ni transfert de fichiers.

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

(cisco@192.0.2.1) Password:

scp: Connection closed

3. Sur le routeur, un syslog indique la connexion SSH réussie, mais le fichier n’a pas été transféré.

*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.  Les débogages SCP sur le routeur n'affichent aucune information.

c8000v#debug ip scp

Incoming SCP debugging is on

5.  SCP avec l'option -v affiche les journaux de débogage qui envoient le sous-système 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. Les débogages ssh sur le routeur montrent que SSH recherche un sous-système SFTP, puis ferme la connexion.

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. Enfin, SCP avec l'option -O réussit.

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