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 [email protected]/var/www/

Dies fordert mich auf, mein lokales Passwort einzugeben. Danach kehrt zurückcp: [email protected]/var/www: Not a directory

sudo scp /Users/myname/magento.tar.gz [email protected]/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.

James
quelle

Antworten:

201

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

scp magento.tar.gz [email protected]:/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 [email protected]:

Dann SSH und verschieben Sie die Datei:

ssh [email protected]
sudo mv magento.tar.gz /var/www
JScoobyCed
quelle
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 [email protected]: / 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
legend12
quelle
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.

pjammer
quelle
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