SCP: Vom Server auf Lokal kopieren

  • Ersteller Ersteller deep90sravioli
  • Erstellt am Erstellt am
D

deep90sravioli

Gast
Guten Abend,

ich hätte mal eine Frage:

Ich kenne das scp mittlerweile ganz ok. Ich weiß wie ich von meinem Lokalen Rechner Dateien/Ordner auf einen Server schicken kann und ich weiß wie ich von meinem Lokalen Rechner auf einen Server zugreifen kann um mit von dort Dateien/Ordner zu holen. Jetzt möchte ich aber das Szenario umdrehen! Ich befinde mich auf einem Server und möchte von diesen Dateien auf meinen Lokalen Rechner schicken.

Normalerweilse geht das ja so:

scp /pfad/datei user@host:~ # Damit schicke ich ja Dateien von meinem Lokalen Rechner auf den Server in das Homeverzeichnis.

Reintheoretisch gesehen müsste, wenn ich nun vom Server auf den Lokalen Rechner schicken will anstelle der Serveradresse meine Lokale IP stehen, aber was steht dann bei user? Ist es überhaupt möglich von einem Server aus Dateien zu verschicken?

MfG.
 
Von deinem lokalen Rechner aus einfach die Argumente "umdrehen":
yourpc$ scp server:/path/to/file ./files-from-server
 
Da scp auf ssh aufbaut, brauchst du in diesem Falle auch einen lokalen SSH Server
 
Nope, es reicht wenn der Server SSH hat. Eine SSH Verbindung braucht ja auch keinen Server auf beiden Seiten -- so wie @nullPtr das geschrieben hat, ist das schon richtig. Er kann das halt nur nicht vom Server aus erledigen, sondern muss vom Client aus starten.
 
xammu schrieb:
Da scp auf ssh aufbaut, brauchst du in diesem Falle auch einen lokalen SSH Server
Wie kommst Du darauf? Es wäre ziemlich sinnfrei, wenn man von einem Server keine Dateien zum Client kopieren könnte.

@deep90sravioli
Einfach mal die Manpages von SCP ansehen. Vereinfacht gilt scp <Quelle> <Ziel>
also in Deinem Fall:

scp user@host:/pfad/datei /lokaler_pfad/
 
Er möchte Dateien vom Server aus auf den lokalen Rechner schicken. Dafür brauchts nen lokalen Server.


Wie er vom lokalem Rechner Serverdateien holt, weiss er.
 
deep90sravioli schrieb:
Ich befinde mich auf einem Server und möchte von diesen Dateien auf meinen Lokalen Rechner schicken.
Befindest du dich wirklich lokal am 'Server', also sitzt du an der Tastatur des 'Servers' oder meinst du mit "befinde mich auf dem Server" eigentlich "ich bin via ssh auf dem 'Server' eingeloggt"? Du nennst den anderen Rechner trotzdem "lokaler Rechner". Das verwirrt.

Grundsätzlich:
Du brauchst auf einer Seite einen ssh-client und auf der anderen Seite einen ssh-Server, um damit Dateien IN BEIDE RICHTUNGEN übertragen zu können.

BTW:
Rechner mit den Namen "Server" bzw. "Client" zu benennen ist immer ungünstig, wenn man über Client/Server-Software spricht, die die Funktionalitäten möglicherweise genau andersrum anbietet. Die sich widersprechenden Antworten hier im Thread sind Folge dieser Verwirrung. Im Zweifelsfall den Computern richtige Namen geben (z.B. Alice, Bob, ...), angeben wo die Rechner stehen und wo du selbst dich befindest.
 
Zuletzt bearbeitet:
xammu schrieb:
Er möchte Dateien vom Server aus auf den lokalen Rechner schicken. Dafür brauchts nen lokalen Server.


Wie er vom lokalem Rechner Serverdateien holt, weiss er.

Du hast mich verstanden. :D

Ja ich bin noch neu inder Materie und ich muss noch lernen mit den Begrifflichkeiten richtig umzugehen. Ich befinde mich mit SSH auf dem Server, nicht vor der Tastatur des eigentlichen Servers. Und jetzt wo ich per SSH auf dem Server eingeloggt bin, möchte ich von dort aus Dateien auf meinen Lokalen Rechner schicken, ohne mich aus SSH auszuloggen und dann von meinem lokalen Rechner darauf zuzugreifen.
 
deep90sravioli schrieb:
Ich befinde mich mit SSH auf dem Server, nicht vor der Tastatur des eigentlichen Servers.
OK. Demnach läuft also auf dem Rechner "Server" ein ssh-server und auf dem "lokalen Rechner" ein ssh-client. Damit sind alle Voraussetzungen gegeben, Files in beide Richtungen zu übertragen. ABER: Du musst den auf dem lokalen Rechner laufenden ssh-client(samt scp) halt irgendwie bedienen. Nur der ssh-client kann einen Filetransfer anstoßen, nicht der ssh-server. Du hast also ein reines Bedienungsproblem. :)

Extra auf dem lokalen Rechner nen ssh-server laufen lassen (was @xammu dir empfohlen hat) und einen ssh-client auf dem Server damit zu verbinden, geht natürlich auch, ist aber ziemlicher Blödsinn für deinen Einsatzfall, der nur an der Bedienung scheitert.

deep90sravioli schrieb:
Und jetzt wo ich per SSH auf dem Server eingeloggt bin, möchte ich von dort aus Dateien auf meinen Lokalen Rechner schicken, ohne mich aus SSH auszuloggen und dann von meinem lokalen Rechner darauf zuzugreifen.
Du musst dich nicht aus der SSH-Session ausloggen, um nebenbei ein File via scp zu übertragen. Mach das in einem ZWEITEN Terminalfenster deines "lokalen Rechners" mit "scp server:/pfad/datei ." oder ähnlich. Wenn du lokal keinen Platz für ein zweites Terminalfenster hast, ist ein Terminal-Multiplexer wie tmux oder GNU-screen Mittel der Wahl.

Andere Variante (extrem "old-style" aus Zeiten lange bevor ssh üblich war):
Direkt immerhalb der ssh-session (oder in einer anderen Terminalverbindung wie einer seriellen Modemverbindung oder mit telnet) kann man via Zmodem ein File übertragen. Man sagt "sz Dateiname" um das Senden anzustoßen. Sz ist aus dem Paket lrzsz (rzsz steht für "receive zmodem send zmodem"). Das sz sendet das File etwa so, wie es ein "cat Dateiname" machen würde, nur mit einem Header davor und ein paar Zeichen umkodiert, damit sie das Terminal nicht schrotten. Das lokale Terminal-Programm oder der ssh-client muß aber diesen Zmodem-Transfer am Header erkennen, sonst siehst du nur das File als Kauderwelsch (eben wie bei "cat Dateiname") im Terminalfenster, speicherst es aber lokal nicht ab. Openssh hat diesen Zmodem-Support NICHT eingebaut, andere ssh-clients haben es. Für openssh brauch man einen Wrapper (wie "zssh") oder muß dem lokalen Terminalprogramm(KDEs Konsole kann es) oder -multiplexer den Zmodem-Support beibringen. Das ist aus heutiger Sicht alles unnötiges Gefrickel. Lerne den Umgang mit mehreren Terminals.
 
Zuletzt bearbeitet:
Zurück
Oben