Hallo, ich habe eineInterNicheSSH-Server-Stack läuft auf benutzerdefinierter Hardware. Ich habe versucht, einige Dateien mit einem SCP-Befehl wie diesem vom Server auf den Client-PC zu kopieren, habe aber festgestellt, dass die Verbindung auch dann noch besteht, wenn ich die Datei gleichzeitig erhalten habe, und es funktioniert ohne Fehler. Ich habe das Gitbash-Terminal für die SCP- und PSCP-Befehle verwendet.scp [email protected]:\\path\\to\\file /local/file/path
pscp -scp [email protected]:\\path\\to\\file /local/file/path
Was ich nicht verstehe, ist, warum es einen Verhaltensunterschied zwischen beiden Befehlen gibt, tatsächlich aber auch pscp
bei der Verwendung scp
selbst. Hier ist das Debug-Protokoll für den PSCP-Befehl
$ pscp -scp -v [email protected]:\\demo\\test_1.txt /d/test_1.txt
[email protected]'s password:
Using username "user".
Sent password
Access granted
Opening session as main channel
Opened main channel
Started a shell/command
test_1.txt | 0 kB | 0.0 kB/s | ETA: 00:00:00 | 100%
Using SCP1
Connected to 192.168.1.12
Server sent command exit status 0
Disconnected: All channels closed
und hier ist für SCP
scp [email protected]:\\demo\\test_1.txt /d/test_1.txt
[email protected]'s password:
debug1: Authentication succeeded (password).
Authenticated to 192.168.1.12 ([192.168.1.12]:22).
debug1: channel 0: new [client-session]
debug1: Entering interactive session.
debug1: pledge: network
debug1: Sending command: scp -v -f \\demo\\test_1.txt
Sink: C0777 16 \demo\test_1.txt
\demo\test_1.txt 100% 16 0.0KB/s 05:49 debug1: channel 0: free: client-session, nchannels 1
Killed by signal 2.
SCP connection remains open until I hit ctrl+c manually.
Was hält die SCP
Verbindung offen, auch nachdem die Datei kopiert wurde? Warum wird der Kanal nicht geschlossen?
Antwort1
Vielleicht ist der Computer, mit dem Sie über scp kommunizieren möchten, langsam ... wie lange haben Sie gewartet, bevor Sie STRG+C gedrückt haben? Manchmal ist scp langsam beim Schließen der Verbindung, insbesondere mit speziellen eingeschränkten Shells davor. Sie können versuchen, scp in den Hintergrund zu stellen und auf das Schließen zu warten (Strg+Z und bg). Sie können auch mit Timeouts oder Ähnlichem herumspielen, um das Warten auf das Schließen zu vermeiden (ich denke, das ist der Unterschied in der Konfiguration/Implementierung zwischen scp und pscp im Vergleich zu dem Verhalten, das Sie gezeigt haben).