windows10gegner
Goto Top

Cisco IOS SCP Verbindung wird geschlossen

Hallo zusammen!

Erst heute habe ich festgestellt, dass mir bei aktuellem Cisco IOS scp als Übertragungsmethode angeboten wird.
Das wollte ich heute nutzen, leider funktioniert es hier nicht.
SSH geht problemlos, bei SCP wird nach Eingabe des Kennwortes die Verbindung geschlossen.

scp -v -o HostKeyAlgorithms=ssh-rsa -o KexAlgorithms=diffie-hellman-group14-sha1 xxx@[xxxx1::1]:config.text ./
Die Optionen werden benötigt, weil der SSH-Server halt kein ecdsa und sha512 kann (IOS ist aktuell!).

(xxx@xxxx::1) Password: 
Authenticated to xxxxx using "keyboard-interactive".  
debug1: channel 0: new session [client-session] (inactive timeout: 0)
debug1: Entering interactive session.
debug1: pledge: filesystem
debug1: Sending environment.
debug1: channel 0: setting env LANG = "de_DE.UTF-8"  
debug1: Sending subsystem: sftp
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: channel 0: free: client-session, nchannels 1
Connection to xxxx::1 closed by remote host.
Transferred: sent 1568, received 1960 bytes, in 0.3 seconds
Bytes per second: sent 6245.0, received 7806.3
debug1: Exit status 0
scp: Connection closed

ip ssh version 2
ip scp server enable

line vty 0 4
 access-class cisco-zugriff-v4 in
 ipv6 access-class cisco-zugriff in
 login authentication local_auth
 length 0
 transport input telnet ssh
C886VA-W-E-K9
Cisco IOS Software, C800 Software (C800-UNIVERSALK9-M), Version 15.9(3)M7, RELEASE SOFTWARE (fc2)
ROM: System Bootstrap, Version 15.1(4r)M, RELEASE SOFTWARE (fc1)
System image file is "flash:c800-universalk9-mz.SPA.159-3.M7.bin"  

Hat wer eine Idee, woran das liegen kann?
Gruß
Marco

Content-Key: 8069935988

Url: https://administrator.de/contentid/8069935988

Printed on: February 25, 2024 at 04:02 o'clock

Member: aqui
aqui Aug 07, 2023 updated at 15:00:57 (UTC)
Goto Top
Hast du es testweise mal andersrum versucht?
copy scp:/ /<username@Host>/config.txt flash:

Du kannst den kex Algorithmus auch in die /home/user/.ssh Datei fest mit der IP des Cisco eintragen, dann musst du es nicht immer mit eintippen. (Siehe hier)
Das “./„ am Ende ist ein Fehler das kannst du weglassen.
https://www.cisco.com/c/en/us/support/docs/security-vpn/secure-shell-ssh ...
Member: Windows10Gegner
Windows10Gegner Aug 07, 2023 at 15:49:49 (UTC)
Goto Top
Umgekehrt (Router zu PC) geht es (ich musste natürlich im SSH-Server den Altkram aktivieren).

./ muss bei openssh unter Debian dran, das bedeutet, dass es in den Ordner soll, in dem ssh ausgeführt wird. Lasse ich das weg, meckert der.

Könnte es daran liegen, dass der per SSH dann erstmal im unprivilegierten Modus ist und nicht auf das Flash zugreifen darf?
Das enable-Passwort ist gesetzt.
Member: aqui
aqui Aug 08, 2023 at 12:57:01 (UTC)
Goto Top
Hast du mal den SSH Debugger laufen lassen auf dem Cisco?
Member: Windows10Gegner
Windows10Gegner Aug 08, 2023 at 13:06:31 (UTC)
Goto Top
Da ist nichts für mich auffällig.
debug ip scp bringt keine Ausgabe (ich habe mal testweise debug ip ssh weggelassen).
Aug  8 13:04:54.297: SSH2 0: authentication successful for admin1
Aug  8 13:04:54.321: SSH2 0: ssh_receive: 80 bytes received 
Aug  8 13:04:54.321: SSH2 0: input: total packet length of 48 bytes
Aug  8 13:04:54.321: SSH2 0: partial packet length(block size)16 bytes,needed 32 bytes,
               maclen 32
Aug  8 13:04:54.321: SSH2 0: MAC compared for #7 :ok
Aug  8 13:04:54.321: SSH2 0: input: padlength 19 bytes
Aug  8 13:04:54.321: SSH2 0: channel open request
Aug  8 13:04:54.321: SSH2 0: send:packet of  length 32 (length also includes padlen of 10)
Aug  8 13:04:54.321: SSH2 0: computed MAC for sequence no.#7 type 91
Aug  8 13:04:54.345: SSH2 0: ssh_receive: 160 bytes received 
Aug  8 13:04:54.345: SSH2 0: input: total packet length of 48 bytes
Aug  8 13:04:54.345: SSH2 0: partial packet length(block size)16 bytes,needed 32 bytes,
               maclen 32
Aug  8 13:04:54.345: SSH2 0: MAC compared for #8 :ok
Aug  8 13:04:54.345: SSH2 0: input: padlength 7 bytes
Aug  8 13:04:54.345: SSH2 0: env request
Aug  8 13:04:54.345: SSH2 0: input: total packet length of 48 bytes
Aug  8 13:04:54.345: SSH2 0: partial packet length(block size)16 bytes,needed 32 bytes,
               maclen 32
Aug  8 13:04:54.345: SSH2 0: MAC compared for #9 :ok
Aug  8 13:04:54.345: SSH2 0: input: padlength 16 bytes
Aug  8 13:04:54.345: SSH2 0: send:packet of  length 16 (length also includes padlen of 6)
Aug  8 13:04:54.345: SSH2 0: computed MAC for sequence no.#8 type 99
Aug  8 13:04:54.345: SSH2 0: subsystem request
Aug  8 13:04:54.345: SSH2 0: subsystem message received
Aug  8 13:04:54.349: SSH2 0: searching for subsystem sftp for vty
Aug  8 13:04:54.449: SSH2 0: send:packet of  length 48 (length also includes padlen of 18)
Aug  8 13:04:54.449: SSH2 0: computed MAC for sequence no.#9 type 98
Aug  8 13:04:54.449: SSH2 0: send:packet of  length 16 (length also includes padlen of 6)
Aug  8 13:04:54.449: SSH2 0: computed MAC for sequence no.#10 type 96
Aug  8 13:04:54.449: SSH2 0: send:packet of  length 16 (length also includes padlen of 6)
Aug  8 13:04:54.449: SSH2 0: computed MAC for sequence no.#11 type 97
Aug  8 13:04:54.449: SSH0: Session terminated normally
Member: aqui
aqui Aug 21, 2023, updated at Aug 26, 2023 at 11:59:11 (UTC)
Goto Top
Hi Marco!

So alles einmal auf einem 880er und 1100er mit aktueller IOS Firmware getestet.
Der Testrouter hat die IP 192.168.200.1 und ist so auch in der/etc/hosts hinterlegt.
root@server:/home/user# cat /etc/hosts
127.0.0.1	localhost
::1		localhost ip6-localhost ip6-loopback
ff02::1		ip6-allnodes
ff02::2		ip6-allrouters

127.0.1.1	server
192.168.200.1	ciscolab 

Damit man nicht immer umständlich die "-o Kexalgorithm..." Ausnahme händisch angeben muss, ist eine entsprechende config Datei unter/home/user eingerichtet:
Host 192.168.200.1
	KexAlgorithms +diffie-hellman-group14-sha1
	User admin

Host ciscolab
        KexAlgorithms +diffie-hellman-group14-sha1
        User admin 
⚠️ Wenn du hier mit sudo su arbeitest (root Privilegien) muss diese config Datei natürlich auch im Verzeichnis /root/.ssh existieren!!

SSH Zugang wurde damit vorab wasserdicht getestet:
root@server:/home/user# ssh ciscolab
Password: 

You are connected to line 10 at router cisco880-router

cisco880-router# 
Rennt! 👍😉

Soweit so gut... Nun die SCP Kür mit einer kleinen, lokalen test.conf Text Datei auf dem Debian Server die nur "hostname Cisco" als Inhalt hat.
root@server:/home/user# scp test.conf admin@ciscolab:test.conf
Password: 
test.conf                                   100%   33     0.3KB/s   00:00    
Connection to ciscolab closed by remote host. 

Check auf dem Router:
cisco880-router#show flash: 
-#- --length-- -----date/time------ path
1     97434576 Mar 29 2023 20:42:28 +02:00 c800-universalk9-mz.SPA.159-3.M7.bin
2       16093 Jul 14 2023 14:32:48 +02:00 labcfg-Jul-14-2023-14-32-48-CEST-0
3          33 Aug 21 2023 14:41:12 +02:00 test.conf

158797824 bytes available (97710080 bytes used)
          
cisco880-router# 
cisco880-router#more flash:test.conf
hostname Cisco

cisco880-router# 

Andersrum funktioniert es ebenso problemlos:
cisco880-router#copy flash:test.conf scp:
Address or name of remote host []? 192.168.200.33
Destination username [admin]? user
Destination filename [test.conf]? test2.conf
Writing test2.conf 
Password: 
 Sink: C0644 33 test2.conf
!
33 bytes copied in 6.724 secs (5 bytes/sec)

cisco880-router#

root@server:/home/user# ls -la
total 122948
drwxr-xr-x 26 user   user       4096 Aug 21 15:06 .
drwxr-xr-x  2 user   user       4096 Aug 21 14:21 .ssh
-rw-r--r--  1 user   user       33 Aug 21 15:06 test2.conf
-rw-r--r--  1 root root         33 Aug 21 13:59 test.conf 
(Getestet auf aktuellem RaspberryPi OS und Debian Bookworm)
Works as designed!! 😉 👍
Member: Windows10Gegner
Windows10Gegner Aug 21, 2023 updated at 13:39:18 (UTC)
Goto Top
Ist ein enable-Passwort gesetzt?
Welche IOS-Version?
EDIT: Ist ja oben sichtbar, die habe ich auch.
Member: aqui
aqui Aug 21, 2023 at 13:56:16 (UTC)
Goto Top
Ist ein enable-Passwort gesetzt?
Hier ein Konfig Auszug:
no service pad
service tcp-keepalives-in
service tcp-keepalives-out
service timestamps debug datetime localtime
service timestamps log datetime localtime show-timezone year
service password-encryption
!
hostname cisco880-router
security authentication failure rate 3 log
enable secret 9 $9$k4LQSVxHJQ1Vdo$wT12345asdrew
!
aaa new-model
!         
aaa authentication login default local
aaa authentication login CONSOLE local
aaa authentication ppp L2TP_AUTH local
aaa authorization console
aaa authorization exec default local 
aaa authorization exec CONSOLE local 
!
clock timezone CET 1 0
clock summer-time CEST recurring last Sun Mar 2:00 last Sun Oct 3:00
!
no ip source-route
no ip gratuitous-arps
!
ip dhcp pool server
 host 192.168.200.33 255.255.255.0
 client-identifier 0100.20b6.5a92.07
!
ip domain name lab.home.arpa
ip host server.lab.home.arpa 192.168.200.33
!
login block-for 120 attempts 3 within 15
login delay 3
login quiet-mode access-class 23
login on-failure log
login on-success log
!
username admin privilege 15 secret 9 $9$LjSbvAGt123
username user privilege 3 secret 9 $9$VhUUqOJ26123
username l2tpuser privilege 0 password 7 1401qa2ws3ed
!
ip ssh time-out 60
ip ssh authentication-retries 2
ip ssh source-interface Vlan1
ip ssh version 2
ip ssh client algorithm kex diffie-hellman-group14-sha1
ip scp server enable
!
banner exec #
You are connected to line $(line) at router $(hostname)
#
!
line vty 0 4
 access-class 23 in
 length 0
 transport input ssh 

Welche IOS-Version?
Siehe show flash: Output aus dem o.a. Post (File #1). face-wink
Member: aqui
aqui Aug 26, 2023 at 11:52:08 (UTC)
Goto Top
Irgendwelchen neuen Erkentnisse?! face-wink
Ansonsten nicht vergessen deinen Thread als erledigt zu schliessen.
Member: Windows10Gegner
Windows10Gegner Aug 26, 2023 at 13:43:21 (UTC)
Goto Top
Leider nicht.
Ich werde aber mal einen 886va (ohne C) testen, wenn ich Zeit dazu habe.
Member: aqui
aqui Aug 26, 2023 at 14:39:40 (UTC)
Goto Top
Wenn du die gleiche IOS Version hast wäre es sehr verwunderlich das es nicht geht. Das IOS kann man dann per se sicher ausschliessen in Bezug auf Bugs.
Da ist dann vermutlich doch irgendwo noch ein kleiner Konfig Kinken sei es auf Server oder Cisco Seite vorhanden?! Es bleibt also spannend... face-wink
Member: aqui
aqui Sep 14, 2023 at 08:31:54 (UTC)
Goto Top
Was machen die SCP Forschungen??

Was mir noch einfiel zu der Thematik...
Kann es sein das du einen zu schwachen SSH Key definiert hast?? Das kann dann auch zu einem globalen SSH Fehler führen wenn du üblicherwiese SSHv2 nutzt. Im Default erzeugt der Cisco nur 512 Bit Keys was für SSHv2 nicht ausreicht. (Min. 768 Bit)
Ggf. also mit crypto key zerosize deinen alten Key löschen und mit crypto key generate rsa einen Neuen angeben mit 1024 oder 2048 Bit.
Du kannst das auch gleich in ein Kommando legen mit crypto key generate rsa modulus 1024
Member: aqui
aqui Oct 24, 2023 updated at 14:17:50 (UTC)
Goto Top
Irgendwas Neues zu der Thematik. Hier rennt es immer noch fehlerlos! 😉
Wie kann ich einen Beitrag auf "gelöst" oder "erledigt" setzen?
Member: Windows10Gegner
Windows10Gegner Feb 21, 2024 at 14:33:27 (UTC)
Goto Top
Ich habe nun mit einem 886VA 15.7(3)M9 getestet, komplett frische Konfiguration, auf dem kann ich experimentieren.

aaa new-model
aaa authorization console
aaa authorization exec default local
username admin privilege 15 secret 5 xyz
ip ssh version 2
Natürlich den Key (4096 Bit und 2024 Bit getestet) erstellt und dazu hostname/domain-name auf fiktive Werte gesetzt.
SSH- Login klappt per IPv4 und IPv6 (link-local), man ist dann direkt im privilegierten Modus.

scp fragt das PW ab, dann wird die Verbindung geschlossen.

*Feb  6 07:41:42.095: SSH2 0: authentication successful for admin                                                                                                                                                                                                         
*Feb  6 07:41:42.095: SSH2 : channel open request                                                                                                                                                                                                                         
*Feb  6 07:41:42.095: SSH2 0: env request                                                                                                                                                                                                                                 
*Feb  6 07:41:42.099: SSH2 0: subsystem request                                                                                                                                                                                                                           
*Feb  6 07:41:42.099: SSH2 0: subsystem message received                                                                                                                                                                                                                  
*Feb  6 07:41:42.099: SSH2 0: searching for subsystem sftp for vty                                                                                                                                                                                                        
*Feb  6 07:41:42.199: SSH0: Session terminated normally


Authenticated to 10.0.0.1 ([10.0.0.1]:22) using "keyboard-interactive".  
debug1: channel 0: new session [client-session] (inactive timeout: 0)
debug1: Entering interactive session.
debug1: pledge: filesystem
debug1: Sending environment.
debug1: channel 0: setting env LANG = "de_DE.UTF-8"  
debug1: Sending subsystem: sftp
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: channel 0: free: client-session, nchannels 1
Connection to 10.0.0.1 closed by remote host.
Transferred: sent 1880, received 2240 bytes, in 0.1 seconds
Bytes per second: sent 17334.3, received 20653.7
debug1: Exit status 0
scp: Connection closed
Member: aqui
aqui Feb 21, 2024 at 20:25:03 (UTC)
Goto Top
scp fragt das PW ab, dann wird die Verbindung geschlossen.
Klappt es oder klappt es nicht? Das Feedback war jetzt etwas nichtssagend zum Status.
Kopierst du etwas zum Cisco Flash oder vom Cisco Flash auf einen Server?
Ist das ein Linux? WinSCP? Bei Linux KexAlgorythms angepasst usw.? Welches Debug Kommando?
Member: Windows10Gegner
Windows10Gegner Feb 22, 2024 updated at 07:43:04 (UTC)
Goto Top
Ich kopiere zum Cisco.
Es ist unter Debian Sid openssh-client 1:9.6p1-3.

Im flash: liegt danach nix.

scp -v -o kexAlgorithms=diffie-hellman-group-exchange-sha1 -o HostKeyAlgorithms=ssh-rsa test admin@10.0.0.1:test
Member: aqui
aqui Feb 22, 2024 updated at 12:31:50 (UTC)
Goto Top
Du hast (leider) Recht. Das ist auf einem 880er auch mit der 15.9.3M7 reproduzierbar und vermutlich ein Bug. face-sad
cisco881#sh ver
Cisco IOS Software, C800 Software (C800-UNIVERSALK9-M), Version 15.9(3)M7, RELEASE SOFTWARE

Auch eine Abänderung des Kommandos
scp test.txt admin@192.168.1.1:flash:/test.txt

Zeigt das gleiche Verhalten. Das Kommando wird ausgeführt, keine Fehlermeldung auf beiden Seiten aber die Datei landet nicht im Flash.

Interessanterweise wenn man den Kopiervorgang andersrum initiiert klappt es fehlerlos.
cisco880#copy scp: flash:
Address or name of remote host []? 192.168.1.151
Source username [cisco880]? admin
Source filename []? test.txt
Destination filename [test.txt]?
Password:
 scp: debug1: fd 3 clearing O_NONBLOCK
 Sending file modes: C0644 18 test.txt
! scp: debug1: fd 1 clearing O_NONBLOCK

18 bytes copied in 6.584 secs (3 bytes/sec) 
Auch das Schreiben von Dateien auf dem Flash zum Server klappt problemlos.
Ob das Verhalten ggf. mit einem EC generierten Key anders ist müsste man nochmal testen. Verwendet wurde ein RSA mit "crypto key generate rsa modulus 2048".

Der Test von oben lief auf einem 926 und auch 1100er mit anderem IOS Release und da klappt es fehlerlos.
Member: Windows10Gegner
Windows10Gegner Feb 22, 2024 at 14:02:49 (UTC)
Goto Top
ssh ließ sich mit ec bei mir nicht aktivieren, obwohl man einen Key generieren kann.
Dafür spricht ebenfalls, dass der als Hostkey zwingend ssh-rsa will.