File SSH SCP locale su remoto in Terminal Mac Os X


90

Sto tentando di copiare un file locale "magento.tar.gz" dalla mia macchina locale a un server remoto utilizzando SSH tramite una VPN. Questo è il collegamento all'IP interno della macchina virtuale che ho usato come xx.xxxx qui.

Ho pieno accesso "sudo" all'account SSH, quindi non dovrebbero esserci problemi durante la copia. Ho provato quanto segue:

Ho provato quanto segue (il file magento.tar.gz è già nella directory root locale)

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

Questo mi chiede di digitare la mia password locale. Successivamente ritornacp: user@xx.x.x.xx/var/www: Not a directory

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

Restituisce lo stesso.

Devo includere un SSH da qualche parte?

Devo prima collegarmi tramite SSH al sito?

Nota a margine: sono riuscito a connettermi tramite SSH al server, navigare nella directory e creare una cartella ed eliminarla usando sudo mkdirecc., Quindi ho sicuramente i permessi.

Risposte:


202

All'inizio, è necessario aggiungere :dopo l'indirizzo IP per indicare che il percorso è il seguente:

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

Non credo che è necessario sudoil scp. In questo caso non influisce sulla macchina remota, solo sul comando locale.

Quindi, se il tuo user@ xx.xxxx non ha accesso in scrittura a, /var/wwwdevi farlo in 2 volte:

Copia sul server remoto nella tua cartella home ( :rappresenta la tua cartella home remota, usa :subfolder/se necessario o :/home/user/per il percorso completo):

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

Quindi SSH e sposta il file:

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

Grazie. L'ho provato con i due punti ma ottengo l'autorizzazione negata: sono stato informato che ho accesso completo a sudo, quindi le autorizzazioni non dovrebbero essere un problema.
James

1
Grazie!!! Ho dovuto utilizzare SSH il telecomando e pwd per trovare la directory predefinita in cui sono stato portato in / home / username - scp magento.tar.gz user@xx.xxxx: / home / username / ha fatto il trucco!
James

19

Giusto per chiarire la risposta data da JScoobyCed, il comando scp non può copiare file in directory che richiedono l'autorizzazione amministrativa. Tuttavia, è possibile utilizzare il comando scp per copiare nelle directory che appartengono all'utente remoto.

Quindi, per copiare in una directory che richiede i privilegi di root, è necessario prima copiare quel file in una directory appartenente all'utente remoto utilizzando il comando scp. Successivamente, devi accedere all'account remoto usando ssh. Una volta effettuato l'accesso, puoi spostare il file nella directory di tua scelta utilizzando il comando sudo mv. In breve, i comandi da utilizzare sono i seguenti:

Utilizzando scp, copia il file in una directory nell'account dell'utente remoto, ad esempio la directory Documenti:

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

Successivamente, accedi all'account dell'utente remoto usando ssh e quindi sposta il file in una directory limitata usando sudo:

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

0

Guarda che il tuo nome di file non ha neanche :in loro. Ho scoperto che dovevo farlo mv blah-07-08-17-02:69.txt no_colons.txte quindi scp no-colons.txt server:non dimenticare di mvtornare sul server. Nel caso in cui questo fosse un problema.


1
Questo non è un problema se aggiungi ./prima del nome locale, comescp ./blah-07-08-17-02:69.txt server:
Anders Tornblad
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.