Wie lade ich eine Datei mit SSH vom Server herunter? [geschlossen]


749

Ich muss eine Datei vom Server auf meinen Desktop herunterladen. (UBUNTU 10.04) Ich habe keinen Webzugriff auf den Server, nur ssh.

Wenn es hilft, ist mein Betriebssystem Mac OS X und iTerm 2 als Terminal.


Probieren Sie dieses sftp
Nishchit Dhanani

51
Warum ist das nicht zum Thema?
jsmedmar

4
weil es keine Programmierfrage ist
Schwarz

26
@ EdwardBlack könnte stattdessen auf unix.stackexchange migriert worden sein
gldraphael

3
Dies funktionierte für michsudo scp -i ~/.ssh/id_rsa username@remotehost.io:Downloads/filename.sql ~/Desktop
kaxi1993

Antworten:


1166

Geben Sie in Ihrem Terminal Folgendes ein:

scp your_username@remotehost.edu:foobar.txt /local/dir

Ersetzen Sie den Benutzernamen, den Host, den Remote-Dateinamen und das lokale Verzeichnis nach Bedarf.

Wenn Sie auf EC2 (oder einen anderen Dienst, für den eine Authentifizierung mit einem privaten Schlüssel erforderlich ist) zugreifen möchten, verwenden Sie die folgende -iOption:

scp -i key_file.pem your_username@remotehost.edu:/remote/dir/foobar.txt /local/dir

Von: http://www.hypexr.org/linux_scp_help.php


3
Ich bin nicht mit Amazon EC2 vertraut, aber wenn Sie SSH-Zugriff auf Ihren Server haben, sollte es funktionieren.
Josh1billion

3
Ich denke, dass /zwischen your_username@remotehost.edu:und foobar.txtim obigen Beispiel ein fehlt .
Eugene S

13
@ NiLL scp -i xxx.pem your_username@remotehost.edu: foobar.txt / some / local / directory
Helin Wang

3
@Alex die Option -r hinzufügen.
SgtPooki

10
Nützliche Informationen - Ich habe nicht bemerkt, dass Sie dies von Ihrem lokalen Computer aus ausführen und nicht von dem Ort, von dem Sie herunterladen möchten. Als Horak gefragt hat, wird ~ / es in Ihrem Benutzerverzeichnis wie / Users / admin / ablegen. Ich war remote in ssh angemeldet und habe mich gefragt, warum es nicht funktioniert.
Kai Qing

322

Sie können dies mit dem scpBefehl tun . scpVerwendet das SSH-Protokoll, um Dateien systemweit zu kopieren, indem die Syntax von erweitert wird cp.

Kopieren Sie etwas von einem anderen System auf dieses System:

scp username@hostname:/path/to/remote/file /path/to/local/file

Kopieren Sie etwas von diesem System auf ein anderes System:

scp /path/to/local/file username@hostname:/path/to/remote/file          

Kopieren Sie etwas von einem System auf ein anderes System:

scp username1@hostname1:/path/to/file username2@hostname2:/path/to/other/file   

5
Ich mag es, wenn jemand, der eine OP-Frage stellen wollte und Ihre Antwort nicht vollständig gelesen hat, versehentlich und ohne nachzudenken einfach Ihren ersten Befehl ausführen und möglicherweise die entfernte Datei, die er herunterladen möchte, mit der lokalen Datei überschreibt, die er möglicherweise zuvor berührt hat. Hoppla.
Mr Purple

Warum gibt es Zugriffe für? Jemand kann "rm -rf /" ausführen, ohne nachzudenken, aber das verringert nicht die Nützlichkeit des Befehls rm?
Raj_gt1

1
Denken Sie, dass das Starten einer Antwort auf "Wie soll ich Linux aktualisieren?" mit dem Befehl "rm -rf /" wäre auch eine gute Idee?
Herr Purple

2
@ MrPurple - Danke für die Warnung, ich habe fast genau das getan. Ich habe die Frage bearbeitet, um den relevantesten Befehl zuerst
anzuzeigen

96

scp ist sicherlich der richtige Weg, aber der Vollständigkeit halber können Sie auch Folgendes tun:

$ ssh host 'cat /path/on/remote' > /path/on/local

oder

$ cat /path/on/local | ssh host 'cat > /path/on/remote'

Beachten Sie, dass dies UUOC ist, aber < /path/on/local ssh host 'cat > /path'unnötige Verwirrung stiften kann .

Und zum Proxy zwischen zwei Hosts:

$ ssh host1 'cat /path/on/host1' | ssh host2 'cat > /path/on/host2'


5
Hat jemand einen Geschwindigkeitstest mit den verschiedenen Methoden durchgeführt? Ich wäre gespannt, welcher am schnellsten ist. Anwendungsfall: Ich habe eine riesige Datei zum Herunterladen.
Starbeamrainbowlabs

Dies funktioniert tatsächlich mit .ssh / config, während scp nicht der ssh-Konfiguration zu folgen scheint

13

Wenn der SSH-Server das SFTP-Subsystem unterstützt (dies ist Teil von SSH und nicht mit FTP verbunden), verwenden Sie sftp. Wenn nicht, versuchen Sie es mit scp.

CyberDuck unterstützt sie alle.


2
Download von ihrer Website, cyberduck.ch/Cyberduck-4.2.1.zip
J-16 SDiZ

Es sieht so aus, als hätten sie die Software inzwischen so geändert, dass sie kostenlos ist. Sie können jedoch optional einen beliebigen Betrag spenden, wodurch eine "Spendenaufforderung" aus dem Programm entfernt wird.
Mike

12
Dies beantwortet die Frage nicht.
Edwinj

1
Es ist einfach genug, um es mit Cyberducks SFTP herunterzuladen
Miguel Stevens

FileZilla funktioniert hervorragend für mich und ist kostenlos und Open Source (und wird von denselben Leuten erstellt, die auch Firefox herstellen). ebenso wie Cygwin.
Hanshenrik
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.