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.

NiLL
quelle
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 [email protected]:Downloads/filename.sql ~/Desktop
kaxi1993

Antworten:

1166

Geben Sie in Ihrem Terminal Folgendes ein:

scp [email protected]: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 [email protected]:/remote/dir/foobar.txt /local/dir

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

Josh1billion
quelle
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 [email protected]:und foobar.txtim obigen Beispiel ein fehlt .
Eugene S
13
@ NiLL scp -i xxx.pem [email protected]: 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   
raj_gt1
quelle
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'
William Pursell
quelle
2
woncp.net/eng/download.php
Nishchit Dhanani
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.

J-16 SDiZ
quelle
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