Contenido

Introducción

Solución Aternativa

Antecedentes

Configuración de SSH y SCP

Troubleshoot

Introducción

Este documento describe cómo utilizar la opción -O para garantizar el éxito de SCP de los clientes en OpenSSH9.0 a los dispositivos Cisco IOS® XE.

Solución Aternativa

La opción -O se puede utilizar en las versiones más recientes de OpenSSH con el comando SCP para forzar que SCP se utilice para la transferencia de archivos en lugar de SFTP.

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

Antecedentes

SCP se puede utilizar para transferir archivos entre un cliente SCP y un servidor SCP. SCP utiliza una sesión SSH para la autenticación.  Una vez autenticado el usuario, se abre otro canal para transferir el archivo con SCP.  En OpenSSH9.0 y versiones posteriores, SSH se sigue utilizando para la autenticación, pero SFTP se utiliza para la transferencia de archivos en lugar de SCP.  Esto crea un problema con las versiones actuales de Cisco IOS XE porque actualmente SFTP no es compatible con la transferencia de archivos a través de SSH. La sesión SSH se realiza correctamente y hay un registro de inicio de sesión correcto en el buffer de syslog.  Sin embargo, la conexión se cierra abruptamente cuando el cliente SCP intenta iniciar la transferencia SFTP.

Configuración de SSH y SCP

Prerrequisitos para utilizar un cliente SCP para transferir un archivo a un dispositivo Cisco IOS XE.

- Se debe configurar SSH

- Se debe configurar el inicio de sesión local o AAA

- Se requiere el nivel de privilegio 15 para que el usuario pueda iniciar SCP

- El servidor SCP debe estar habilitado

Aquí hay un ejemplo de configuración

# 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

Consejo: Puede encontrar información adicional sobre la configuración SSH aquí.

Nota: aaa se puede utilizar en lugar del inicio de sesión local.

Una vez finalizada la configuración, puede conectar SSH/SCP al dispositivo con una dirección IP alcanzable en el dispositivo.

Desde un dispositivo Linux, puede utilizar estos comandos con la dirección IP del dispositivo:

- ssh cisco@192.0.2.1

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

Nota: De forma predeterminada, el archivo se copia en bootflash.

Troubleshoot

Si se produce el problema, compruebe estos síntomas:

1. La versión OpenSSH del cliente muestra 9.0 o superior.

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

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

2. El cliente muestra que la conexión se cierra abruptamente sin ningún error o transferencia de archivos.

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

(cisco@192.0.2.1) Password:

scp: Connection closed

3. En el router un syslog muestra la conexión SSH exitosa pero el archivo no fue transferido.

*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.  Las depuraciones de SCP en el router no muestran ninguna información.

c8000v#debug ip scp

Incoming SCP debugging is on

5.  La opción SCP with -v muestra los registros de depuración que envían el subsistema 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 debugs en el router muestra que SSH busca un subsistema SFTP y luego cierra la conexión.

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. Por último, SCP con la opción -O tiene éxito.

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