So laden Sie lokale Dateien über das Linux-Terminal auf den Server hoch

47

Ich versuche, lokale Dateien mithilfe von Putty oder SSH auf den Server hochzuladen, werde dort jedoch nicht hochgeladen.

Gibt es eine direkte Methode, um Dateien vom Linux-Terminal vom lokalen zum Server hochzuladen, ohne FTP usw. zu verwenden?

Sanjeev Kumar Goswami
quelle
SFTP ist das, wonach Sie suchen.
Ich möchte meine lokale Datei mit dem Linux-Terminal auf den Server übertragen. Angenommen, wir haben mit Putty oder SSH auf den Server zugegriffen, konnten die Datei jedoch nicht mit demselben Terminal übertragen.

Antworten:

64

Sicher. Verwenden Sie scp(sichere Kopie) wie folgt:

scp [source file] [username]@[destination server]:.

Natürlich ersetzen die eingeklammert [source file], [username]und die [destination server]lokalen Einstellungen anzupassen. Wenn also die Datei cool_stuff.txtund Ihr Benutzername auf dem Remote-Server sanjeevund der Ziel-Server example.comlauten, lautet der Befehl:

scp cool_stuff.txt [email protected]:.

Die Quelle könnte auch remote sein, so dass Sie das Gegenteil des obigen Beispiels erreichen können:

scp [email protected]:cool_stuff.txt .

Dieser Befehl kopiert die entfernte Datei cool_stuff.txtin das lokale Verzeichnis, in dem Sie sich befinden. Wenn Sie dies mit mehreren Dateien tun, verwenden Sie einfach einen Platzhalter ( *) wie bei einem normalen cpBefehl.

Außerdem gibt das .nur den direkten Verzeichnispfad an. B. derjenige, in dem Sie sich gerade befinden, als Sie den Befehl ausführen, oder der unmittelbare Pfad, über den der Remotebenutzer auf dem Zielserver verfügt. Sie können aber auch einen Pfad wie /this/path/right/hereim Beispiel "Lokal zu Remote" angeben :

scp cool_stuff.txt [email protected]:/this/path/right/here

Oder das Remote-to-Local-Beispiel hier:

scp [email protected]:cool_stuff.txt /this/path/right/here

Wenn der Remote-Server nun kein SSH und nur SFTP zulässt, ist SFTP der richtige Weg. Dies scpist jedoch sehr nützlich, wenn Sie nur eine Datei werfen und nicht den gesamten SFTP-Prozess manuell über die Befehlszeile ausführen möchten.

JakeGould
quelle
13

Wenn die Anmeldung beim Remote-Server über den SSH- Schlüssel erfolgt, können wir das unten stehende -iFlag verwenden, um unseren Schlüssel an den Server zu übergeben:

scp -i /path/to/.ssh/id_rsa path/to/file/myFiles.gz myServer.com:/folder/on/server

-i identitätsdatei
Wählt die Datei aus, aus der die Identität (privater Schlüssel) für die Authentifizierung mit öffentlichem Schlüssel gelesen wird.
Diese Option wird direkt an ssh (1) übergeben.

zx8754
quelle
13

Um die Antwort von Jake zu ergänzen , können Sie einen Ort angeben ., an den kopiert werden soll, indem Sie den Pfad am Ende der URL wie folgt einfügen:

scp /path/to/file username@servername/ip:/destination/folder/
CBinyenya
quelle
1
FYI der Raum zwischen entferntem Wirt und Pfad ist ein Fehler, also müssen Sie dieses ohne einen Raum schreiben! (Bearbeiten dieser Antwort ist
derzeit