• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

ssh und cp

padersuse

Hacker
Hallo,

ich möchte gern nach Aufbauen einer SSH-Verbindung Dateien vom Server zum Client kopieren. Muss man hier zusätzlich mit scp arbeiten (innerhalb einer SSH-Verbindung bzw. zusätzlich zu einer SSH-Verbindung) oder reicht nicht auch der normale cp-Befehl innerhalb einer SSH-Verbindung ?
Gruß Padersuse
 

v.-vega

Member
Um mit scp Dateien zu kopieren brauchst du dich nicht erst einloggen.
Einfach:

Code:
scp benutzer@server:dateiname dateiname
eingeben um Dateien vom Server in das aktuelle Verzeichnis vom Client zu kopieren.

Von Client zu Server:

Code:
scp dateiname benutzer@server:

Weitere Informationen

Code:
man scp
 
OP
P

padersuse

Hacker
Hallo,

das mit dem ausprobieren habe ich schon versucht; den Befehl cp innerhalb einer SSH-Sitzung einzusetzen, um Dateien vom Server zum Client zu schicken, ist mir nicht geglückt. Gehts nicht oder habe ich einen Fehler gemacht ?
Gruß Padersuse
 

gameboy

Hacker
Hallo padersuse,

mit cp innerhalb einer ssh-Session geht das AFAIK nicht.

So sollte es klappen (ohne vorher eine ssh-Verbindung herzustellen):

Code:
scp padersuse@myserver:/home/padersuse/myfile.txt .
Dabei ist:
- Username auf dem Server: padersuse
- Name des Servers: myserver
- Datei myfile.txt liegt auf dem Server im Home-Verzeichnis von padersuse

Viele Grüße,
gameboy.
 

panamajo

Guru
padersuse schrieb:
ich möchte gern nach Aufbauen einer SSH-Verbindung Dateien vom Server zum Client kopieren.

Die Nomenklatur CLinet/Server hinkt hier sehr, da du auf dem Client den "Server" als Client ansprechen kannst aber egal...

Eine interaktive ssh Session auf einem anderen Rechner ist dbzgl. als ob du dich direkt eingeloggt hast. Dies bedeutet auch dass lokale Befehle wie cp nicht plötzlich über magische Fähigkeiten verfügen (denn cp hat von Client/Server keine Ahnung sondern operiert nur auf dem lokalen fs).

Du kannst natürlich den Server via scp ansprechen oder gleichzeitig vom Server aus Dateien via scp auf den Client kopieren.

Ich empfehle für KDE User den kio_sftp slave: einfach "sftp://servername_oder_ip" eingeben und schon ist das ganze so einfach wie ftp...
 
OP
P

padersuse

Hacker
Hallo,

bei meiner Konstellation findet sich noch eine Besonderheit : ich logge mich übers Internet auf einen Rechner ein, der hinter einer FritzBox steht, wobei die Fritzbox tgl. über Dyndns eine neue IP-Nummer bekommt. Nach Zuteilung einer neuen Nummer werde ich jedesmal beim Einloggen gefragt : Permanently added the RSA host key for IP address 'ip-nummer' to the list of known host, d.h. meine Liste in der Datei known host wird irgendwann ellenlang. Wenn ich über einen public Key und private key gehe, muss ich für jeden Client-Rechner einen rsa oder dsa -Key generieren, richtig ?
Außerdem stellt sich für mich die Frage : wenn ich über den Befehl ssh -l benutzername -C -L 5901:ip_nummer_server:5901 ip_nummer_fritzbox eine Verbindung aufbaue, wie arbeite ich dann mit dem Befehl fish oder sftp ?
Gruß Padersuse
 

v.-vega

Member
padersuse schrieb:
wenn ich über den Befehl ssh -l benutzername -C -L 5901:ip_nummer_server:5901 ip_nummer_fritzbox eine Verbindung aufbaue, wie arbeite ich dann mit dem Befehl fish oder sftp ?

Wenn du Dateien hin und her kopieren willst brauchst du keine Verbindung mit ssh. scp baut sich selbst eine auf für den Zeitraum in dem kopiert wird. Ausserdem baust du mit dem Befehl einen Tunnel vom Client zum Server auf, in dem du unsichere Protokolle (in diesem Fall VNC) über das Internet schleusen kannst.

Um eine normale Verbindung aufzubauen reicht

Code:
ssh Serveradresse

Wenn du mit einem RSA-Key sicherst (und das sollte man eigentlich) musst du noch den User angeben.
 
OP
P

padersuse

Hacker
Hallo,

wie schaut denn der Befehl aus, um mit scp eine Datei auf einen Rechner mit der IP-Nummer 192.168.1.200 hinter einer Fritzbox, die ständig online ist, zu übertragen.
Bei ssh kann ich z.B. eingeben :
ssh -l username -C -L 5801:192.168.1.200:5801 ip-fritzbox
Aber unter "man scp" sehe ich nicht die Möglichkeit, 2 verschiedene IP`s zu benennen, eine für den Zielrechner, eine für die Fritzbox.
Gruß Padersuse
 
OP
P

padersuse

Hacker
Hallo,

unter "man scp" sehe ich die Möglichkeit ssh-Variablen mitzugeben (z.B. -o), werde dann mal berichten; wenns einer natürlich schon weiss, kann er es natürlich gern posten.
Padersuse
 

v.-vega

Member
Ich zitiere mich mal selber:

v.-vega schrieb:
Um mit scp Dateien zu kopieren brauchst du dich nicht erst einloggen.
Einfach:

Code:
scp benutzer@server:dateiname dateiname
eingeben um Dateien vom Server in das aktuelle Verzeichnis vom Client zu kopieren.

Von Client zu Server:

Code:
scp dateiname benutzer@server:

Weitere Informationen

Code:
man scp

v.-vega schrieb:
Wenn du Dateien hin und her kopieren willst brauchst du keine Verbindung mit ssh. scp baut sich selbst eine auf für den Zeitraum in dem kopiert wird. Ausserdem baust du mit dem Befehl einen Tunnel vom Client zum Server auf, in dem du unsichere Protokolle (in diesem Fall VNC) über das Internet schleusen kannst.

Leite den ssh Port an deiner Fritzbox zum Zielrechner weiter, mach dir einen Account bei Dyndns und installier den Dyndns-Client auf deiner Linux Kiste.
Dann nutze den bereits oben beschriebenen Befehl und kopier Dateien.
 
OP
P

padersuse

Hacker
Hallo V.-Vega,

wie Du es vorgeschlagen hast, klappt es auch.
Wenn ich aber 2 Rechner hinter der Fritzbox habe, wie bekomme ich zusätzlich zum Namen der Fritzbox die IP-Nummer des Zielrechners in den SCP-Befehl, sodass speziell dieser angesprochen wird ?
Gruß Padersuse
 

v.-vega

Member
Ich hoffe ich versteh das richtig.

Die Fritzbox hat bei dir einen dns namen, soll heissen du kommst von extern nur auf deine Fritzbox. Wenn du auf einen PC willst musst du diesem auch einen dyndns Namen geben. An der Fritzbox leitest du dann den ssh Port zur IP des Rechners weiter.
 
OP
P

padersuse

Hacker
Hallo V.-Vega,

ja Du hast das richtig verstanden : die Fritzbox ist immer online und hat über Dyndns einen Namen. Mehrere Rechner dahinter sollen aber aus Sicherheitsgründen von außen nicht direkt mit dem Internet in Verbindung stehen, sondern haben nur IP-Adressen im "privaten Bereich". In der Fritzbox habe ich eine Portweiterleitung bei Port 22 zum Rechner 192.168.1.60 eingerichtet.
Da ich eine SSH Verbindung über den Befehl
ssh -l username -C -L 5801:192.168.1.60:5801 name_fritzbox aufbauen kann, erreiche ich doch einen Rechner hinter der Fritzbox durch Angabe der IP-Nummer 192.168.1.60, um z.B. eine Fernwartung dieses Rechners zu ermöglichen.
Nun habe ich gedacht, ähnlich könne man auch beim Befehl scp vorgehen. Ich hab aber immernoch nicht herausgefunden, wie man diese Anforderung löst.
 
Oben