Contents

Introdução

Solução

Informações de Apoio

Configurar SSH e SCP

Troubleshooting

Introdução

Este documento descreve como usar a opção -O para garantir uma SCP bem-sucedida de clientes no OpenSSH9.0 para dispositivos Cisco IOS® XE.

Solução

A opção -O pode ser usada em versões mais recentes do OpenSSH com o comando SCP para forçar o SCP a ser usado para a transferência de arquivos em vez do SFTP.

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

Informações de Apoio

O SCP pode ser usado para transferir arquivos entre um cliente SCP e um servidor SCP. O SCP usa uma sessão SSH para autenticação.  Depois que o usuário é autenticado, outro canal é aberto para transferir o arquivo com SCP.  No OpenSSH9.0 e versões posteriores, o SSH ainda é usado para autenticação, mas o SFTP é usado para a transferência de arquivos em vez do SCP.  Isso cria um problema com as versões atuais do Cisco IOS XE porque o SFTP não é suportado atualmente para transferir arquivos por SSH. A sessão SSH é bem-sucedida e há um log de êxito de logon no buffer do syslog.  No entanto, a conexão é fechada abruptamente quando o cliente SCP tenta iniciar a transferência SFTP.

Configurar SSH e SCP

Pré-requisitos para usar um cliente SCP para transferir um arquivo para um dispositivo Cisco IOS XE.

- SSH deve ser configurado

- O login local ou AAA deve ser configurado

- O nível de privilégio 15 é necessário para que o usuário SCP

- O servidor SCP deve ser habilitado

Aqui está um exemplo de configuração

# 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: Informações adicionais sobre a configuração do SSH podem ser encontradas aqui.

Note: o aaa pode ser usado em vez do login local.

Depois que a configuração for feita, você poderá executar SSH/SCP para o dispositivo com um endereço IP acessível no dispositivo.

Em um dispositivo Linux, você pode usar estes comandos com o endereço IP do dispositivo:

- ssh cisco@192.0.2.1

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

Note: Por padrão, o arquivo é copiado para o flash de inicialização.

Troubleshooting

Se o problema ocorrer, verifique os seguintes sintomas:

1. A versão OpenSSH do cliente mostra a 9.0 ou posterior.

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

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

2. O cliente mostra que a conexão é fechada abruptamente sem qualquer erro ou transferência de arquivo.

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

(cisco@192.0.2.1) Password:

scp: Connection closed

3. No roteador um syslog mostra a conexão SSH bem-sucedida, mas o arquivo não foi 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.  As depurações SCP no roteador não mostram nenhuma informação.

c8000v#debug ip scp

Incoming SCP debugging is on

5.  SCP com opção -v mostra logs de depuração enviando o 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. As depurações de ssh no roteador mostram que o SSH procura um subsistema SFTP e, em seguida, fecha a conexão.

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. Finalmente, SCP com a opção -O é bem-sucedido.

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