Mit welchem Terminalbefehl kann ich ein Verzeichnis von einem Remotecomputer (Linux) auf meinen lokalen Computer (Mac) übertragen?Am wichtigsten ist, dass ich dies über die Befehlszeile tun möchte, während ich per SSH auf den Remotecomputer zugreife.Ich weiß, wie ich SCP in der Befehlszeile meines lokalen Computers verwende, aber ich habe keine Ahnung, wie ich es vom Remotecomputer aus verwenden würde (und auch nicht, wie mein lokaler Pfad aussehen würde).
Antwort1
Starten Sie den sshd
auf Ihrem lokalen Computer, falls Sie dies nicht bereits getan haben. Starten Sie dann einenzweiteSitzung von Ihrem lokalen Computer zum Remotecomputer:
ssh -R 2222:127.0.0.1:22 user@remote
Dadurch wird der Remote-Port 2222 an den sshd
lauschenden Port 127.0.0.1 auf Ihrem lokalen Computer weitergeleitet und eine erstellt reverse tunnel
. Führen Sie dann scp
auf dem Remote-Computer Folgendes aus:
scp -P2222 file 127.0.0.1:/path/
Antwort2
Sie können auch das Gegenteil tun, also eine Datei von einem Remote-Rechner auf den lokalen Rechner übertragen.
ssh -L 2222:[email protected]:22 [email protected] -N &
scp -P 2222 127.0.0.1:/path/to/file/on/remote/machine.diff /tmp
Der ssh-Befehl richtet einen Tunnel von localhost:2222 zum Remote-Rechner 192.168.1.37 hinter dem netzseitigen Server remoteserver.com ein. Mit dem zweiten Befehl können Sie ihn lokal kopieren.
Manchegute Beispiele und Tipps hier, und wie man es in ~/.ssh/config konfiguriert, um es zu automatisieren.
Antwort3
Wenn Sie sich lokal hinter einem Router/einer Firewall befinden, der/die Ihnen eine private IP-Adresse zuweist, müssen Sie den Router so konfigurieren, dass er per NAT einen Port auf Ihren lokalen Port 22 abbildet. Sie können dann vom Remote-Computer aus darauf zugreifen, indem Sie Ihrenöffentliche IP-Adresseauf dem Port Ihrer Wahl (Sie können Port 22 direkt zuordnen, aber ich persönlich empfehle grundsätzlich, dies zu vermeiden, da Standardserver-Ports häufige Ziele für Malware sind, die versucht, einen Weg hinein zu finden).