CURL schlägt mit Exitcode 18 für SFTP fehl, wobei nur wenige Bytes für Dateigrößen unter 120 KB verbleiben, aber nicht, wenn ich strace zu sshd hinzufüge

CURL schlägt mit Exitcode 18 für SFTP fehl, wobei nur wenige Bytes für Dateigrößen unter 120 KB verbleiben, aber nicht, wenn ich strace zu sshd hinzufüge

Es gibt ein seltsames Problem mit curl im Amazon Linux 2-Server.

Es schlägt mit Exitcode 18 fehl, obwohl nur etwa 1 MB Bytes zu lesen sind. Um das Problem zu beheben, habe ich einen lokalen SFTP-Server eingerichtet.

mein Curl-Befehl sieht also so aus: curl -u testuser:12345 -o /tmp/testfile sftp://127.0.0.1/home/testuser/testfile

Das Problem tritt auch nicht auf, wenn die Dateigröße weniger als ca. 120 KB beträgt.

Keine der folgenden Änderungen hat geholfen:

  • Nicht verwenden-o
  • Zitieren der URL
  • mit--insecure
  • anstelle localhostvon127.0.0.1
  • -fvor der URL verwenden

Debug-Ausgabe mit -vvvsagt mir nichts,

Die Trace-Ausgabe mit --tracesagt mir nichts,

TCPdump-Daten sind verschlüsselt und ich kann nicht sagen, was los ist.

Ich wünschte, ich könnte alle Ausgaben freigeben. Aber ich arbeite an einem Remote-Desktop und habe keine Möglichkeit, Dateien zu übertragen. Ich kann also nichts freigeben.

Was ist denn los?

Und ja, wenn ich eine SFTP-Sitzung verwende und den Befehl „Get“ verwende, funktioniert das.

Curl-Ausgabe:

{ [30000 bytes data]
* transfer closed with 277200 bytes remaining to read
 35  420k   35  150k    0     0  1195k      0 --:--:-- --:--:-- --:--:-- 1201k
 35  420k   35  150k    0     0  1179k      0 --:--:-- --:--:-- --:--:-- 1179k
* Closing connection
curl: (18) transfer closed with 277200 bytes remaining to read

SFTP-Server-Debug3-Protokoll:

Apr 03 21:31:30 my-host sftp-server[3159]: debug3: request 0: realpath
Apr 03 21:31:30 my-host sftp-server[3159]: realpath "."
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 0: sent names count 1
Apr 03 21:31:30 my-host sftp-server[3159]: debug3: request 1: open flags 1
Apr 03 21:31:30 my-host sftp-server[3159]: open "/home/testuser/testfile2" flags READ mode 0100644
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 1: sent handle handle 0
Apr 03 21:31:30 my-host sftp-server[3159]: debug3: request 2: stat
Apr 03 21:31:30 my-host sftp-server[3159]: stat name "/home/testuser/testfile2"
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 2: sent attrib have 0xf
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 3: read "/home/testuser/testfile2" (handle 0) off 0 len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 3: sent data len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 4: read "/home/testuser/testfile2" (handle 0) off 30000 len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 4: sent data len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 5: read "/home/testuser/testfile2" (handle 0) off 60000 len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 5: sent data len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 6: read "/home/testuser/testfile2" (handle 0) off 90000 len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 6: sent data len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 7: read "/home/testuser/testfile2" (handle 0) off 120000 len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 7: sent data len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 8: read "/home/testuser/testfile2" (handle 0) off 150000 len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 8: sent data len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 9: read "/home/testuser/testfile2" (handle 0) off 180000 len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 9: sent data len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 10: read "/home/testuser/testfile2" (handle 0) off 210000 len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 10: sent data len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 11: read "/home/testuser/testfile2" (handle 0) off 240000 len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 11: sent data len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 12: read "/home/testuser/testfile2" (handle 0) off 270000 len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 12: sent data len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 13: read "/home/testuser/testfile2" (handle 0) off 300000 len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 13: sent data len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 14: read "/home/testuser/testfile2" (handle 0) off 330000 len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 14: sent data len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 15: read "/home/testuser/testfile2" (handle 0) off 360000 len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 15: sent data len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 16: read "/home/testuser/testfile2" (handle 0) off 390000 len 19600
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 16: sent data len 19600
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 17: read "/home/testuser/testfile2" (handle 0) off 409600 len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 17: sent data len 21400
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 18: read "/home/testuser/testfile2" (handle 0) off 431000 len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug3: request 18: sent status 1
Apr 03 21:31:30 my-host sftp-server[3159]: sent status End of file
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 19: read "/home/testuser/testfile2" (handle 0) off 461000 len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug3: request 19: sent status 1
Apr 03 21:31:30 my-host sftp-server[3159]: sent status End of file
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 20: read "/home/testuser/testfile2" (handle 0) off 491000 len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug3: request 20: sent status 1
Apr 03 21:31:30 my-host sftp-server[3159]: sent status End of file
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 21: read "/home/testuser/testfile2" (handle 0) off 521000 len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug3: request 21: sent status 1
Apr 03 21:31:30 my-host sftp-server[3159]: sent status End of file
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 22: read "/home/testuser/testfile2" (handle 0) off 551000 len 12400
Apr 03 21:31:30 my-host sftp-server[3159]: debug3: request 22: sent status 1
Apr 03 21:31:30 my-host sftp-server[3159]: sent status End of file
Apr 03 21:31:30 my-host sftp-server[3159]: debug3: request 23: close handle 0
Apr 03 21:31:30 my-host sftp-server[3159]: close "/home/testuser/testfile2" bytes read 431000 written 0
Apr 03 21:31:30 my-host sftp-server[3159]: debug3: request 23: sent status 0
Apr 03 21:31:30 my-host sftp-server[3159]: sent status Success
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: read eof
Apr 03 21:31:30 my-host sftp-server[3159]: session closed for local user testuser from [127.0.0.1]
Apr 03 21:31:30 my-host sshd[3157]: Received disconnect from 127.0.0.1 port 47854:11: Shutdown
Apr 03 21:31:30 my-host sshd[3157]: Disconnected from 127.0.0.1 port 47854
Apr 03 21:31:30 my-host sshd[3154]: pam_unix(sshd:session): session closed for user testuser


{ [16384 bytes data]
100  420k  100  420k    0     0  4020k      0 --:--:-- --:--:-- --:--:-- 4047k
100  420k  100  420k    0     0  3953k      0 --:--:-- --:--:-- --:--:-- 3953k
* Connection #0 to host 127.0.0.1 left intact

Antwort1

Ich gehe davon aus, dass Sie 127.0.0.1 als Maske für die echte Adresse verwendet haben oder dass eine Weiterleitung eingerichtet ist.

Hast du es versucht:

curl -u Testbenutzer:12345 -o /tmp/Testdatei scp://127.0.0.1/home/Testbenutzer/Testdatei

Im Gegensatz zu SFTP ist SCP so konzipiert, dass es auf einem einzigen Kanal funktioniert. Außerdem erfordert SCP keine Bestätigung jedes Pakets, bevor das nächste gesendet wird. Möglicherweise kann SCP die Firewall, die Sie umgehen möchten, umgehen.

verwandte Informationen