SSH SCP Lokale Datei an Remote in Terminal Mac Os X.


90

Ich versuche, eine lokale Datei 'magento.tar.gz' mithilfe von SSH über ein VPN von meinem lokalen Computer auf einen Remote-Server zu kopieren. Dies stellt eine Verbindung zur internen IP der virtuellen Maschine her, die ich hier als xx.xxxx verwendet habe.

Ich habe vollen "Sudo" -Zugriff auf das SSH-Konto, daher sollte es keine Probleme beim Kopieren geben. Ich habe folgendes versucht:

Ich habe Folgendes versucht (die Datei magento.tar.gz befindet sich bereits im lokalen Stammverzeichnis)

sudo scp magento.tar.gz user@xx.x.x.xx/var/www/

Dies fordert mich auf, mein lokales Passwort einzugeben. Danach kehrt zurückcp: user@xx.x.x.xx/var/www: Not a directory

sudo scp /Users/myname/magento.tar.gz user@xx.x.x.xx/var/www/

Gibt das gleiche zurück.

Muss ich irgendwo eine SSH einbinden?

Muss ich mich zuerst über SSH mit der Site verbinden?

Randnotiz: Ich habe es geschafft, über SSH eine Verbindung zum Server herzustellen, zum Verzeichnis zu navigieren, einen Ordner zu erstellen und ihn mit sudo mkdiretc zu löschen, sodass ich definitiv Berechtigungen habe.

Antworten:


201

Zuerst müssen Sie :nach der IP-Adresse hinzufügen, um anzugeben, dass der Pfad wie folgt lautet:

scp magento.tar.gz user@xx.x.x.xx:/var/www

Ich glaube nicht , Sie brauchen sudodas scp. In diesem Fall betrifft dies nicht den Remotecomputer, sondern nur den lokalen Befehl.

Wenn Ihr user@ xx.xxxx keinen Schreibzugriff hat, müssen /var/wwwSie dies zweimal tun:

Kopieren Sie auf den Remote-Server in Ihrem Home-Ordner ( :stellt Ihren Remote-Home-Ordner dar, verwenden Sie ihn :subfolder/bei Bedarf oder :/home/user/für den vollständigen Pfad):

scp magento.tar.gz user@xx.x.x.xx:

Dann SSH und verschieben Sie die Datei:

ssh user@xx.x.x.xx
sudo mv magento.tar.gz /var/www

Vielen Dank. Ich habe es mit dem Doppelpunkt versucht, aber die Berechtigung wurde verweigert. Ich wurde informiert, dass ich vollen Sudo-Zugriff habe, sodass Berechtigungen kein Problem darstellen sollten.
James

1
Vielen Dank!!! Ich musste die Fernbedienung und pwd SSH, um herauszufinden, in welches Standardverzeichnis ich gebracht wurde: / home / username - scp magento.tar.gz user@xx.xxxx: / home / username / hat den Trick gemacht!
James

19

Um die Antwort von JScoobyCed zu verdeutlichen, kann der Befehl scp keine Dateien in Verzeichnisse kopieren, für die eine Administratorberechtigung erforderlich ist. Mit dem Befehl scp können Sie jedoch in Verzeichnisse kopieren, die dem Remotebenutzer gehören.

Um in ein Verzeichnis zu kopieren, für das Root-Rechte erforderlich sind, müssen Sie diese Datei zunächst mit dem Befehl scp in ein Verzeichnis kopieren, das dem Remotebenutzer gehört. Als Nächstes müssen Sie sich mit ssh beim Remote-Konto anmelden. Sobald Sie angemeldet sind, können Sie die Datei mit dem Befehl sudo mv in das Verzeichnis Ihrer Wahl verschieben. Kurz gesagt, die zu verwendenden Befehle lauten wie folgt:

Kopieren Sie mit scp die Datei in ein Verzeichnis im Konto des Remotebenutzers, z. B. in das Verzeichnis "Dokumente":

scp /path/to/your/local/file remoteUser@some_address:/home/remoteUser/Documents

Melden Sie sich anschließend mit ssh beim Konto des Remotebenutzers an und verschieben Sie die Datei mit sudo in ein eingeschränktes Verzeichnis:

ssh remoteUser@some_address
sudo mv /home/remoteUser/Documents/file /var/www

0

Achten Sie darauf, dass Ihr Dateiname auch nicht enthalten ist :. Ich stellte fest, dass ich musste mv blah-07-08-17-02:69.txt no_colons.txtund scp no-colons.txt server:vergaß dann nicht, mvwieder auf dem Server zu sein. Nur für den Fall, dass dies ein Problem war.


1
Das ist kein Problem, wenn Sie nur ./vor dem lokalen Namen hinzufügen , wiescp ./blah-07-08-17-02:69.txt server:
Anders Tornblad
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.