Trasferisci file usando scp: permesso negato


23

Provo a trasferire file dal computer remoto usando sshsul mio computer:

scp My_file.txt user_id@server:/Home

Questo dovrebbe mettere My_file.txt nella cartella home sul mio computer, giusto? ottengo

scp / Home: permesso negato

Anche quando provo ...@server:/Desktop:, per copiare i file dal computer remoto sul mio desktop.

Che cosa sto facendo di sbagliato?


1
Se si desidera copiare il file nella cartella principale di 'user_id', utilizzare Copia nella cartella principale degli scp My_file.txt user_id@server:utenti.
Manula Waidyanatha,

Risposte:


36

I tuoi comandi stanno provando a mettere il nuovo documento nella radice ( /) della tua macchina. Quello che vuoi fare è trasferirli nella tua home directory (poiché non hai i permessi su cui scrivere /). Se il percorso verso casa tua è qualcosa di simile /home/erezprova quanto segue:

scp My_file.txt user_id@server:/home/erez/

Puoi sostituire il percorso della tua home directory con il collegamento ~/, quindi i seguenti avranno lo stesso effetto:

scp My_file.txt user_id@server:~/

Puoi persino tralasciare del tutto il percorso dal lato remoto; questo significa la tua home directory.

scp My_file.txt user_id@server:

Cioè, per copiare il file sul desktop potresti volerlo trasferire su /home/erez/Desktop/:

scp My_file.txt user_id@server:/home/erez/Desktop/

o usando il collegamento:

scp My_file.txt user_id@server:~/Desktop/

o usando un percorso relativo sul lato remoto, che viene interpretato rispetto alla tua home directory:

scp My_file.txt user_id@server:Desktop/

Modificare:

Come già accennato @ckhan, devi anche scambiare gli argomenti, deve esserlo

scp FROM TO

Quindi, se si desidera copiare il file My_file.txtdal server user_id@serversul desktop, è necessario provare quanto segue:

scp user_id@server:/path/to/My_file.txt ~/Desktop/

Se il file My_file.txtsi trova nella directory home sul server, è possibile utilizzare nuovamente il collegamento:

scp user_id@server:~/My_file.txt ~/Desktop/

- Ho provato: "~ /" per "Home" adesso, e anche "~ / Desktop /. Entrambi hanno dato come risultato: My_file.txt 100% 0 0,0 KB / s 00:00 e non riesco a vedere i file nel mio cartelle. Cosa sto ancora facendo di sbagliato? Grazie mille!
Erez,

Nel tuo secondo esempio di comando, ~dovrebbe essere protetto dalla valutazione in modo da essere valutato sull'host remoto: \~ad esempio.
dan

1
Per ringraziarti, mi sono registrato al sito web. Grazie mi hai salvato la giornata :)
Ad Infinitum,

6

Sono venuto qui per "Trasferisci file usando scp: permesso negato" perché ho avuto lo stesso errore.

Nel mio caso, il file scaricato con scp avrebbe sovrascritto un file di proprietà di root, e io non ero root. In breve, controlla la proprietà del file da sovrascrivere.


1
In questo caso è perché sta cercando di scrivere /Homee non essendo root, non ha accesso in scrittura all'esterno~/
Shadur,

Mi aiuti.
Longdeqidao

4

questo sembra essere un problema autorizzante

Il file potrebbe non disporre delle autorizzazioni di lettura poiché viene consegnato al server di destinazione come account di origine.

è necessario assicurarsi che il file all'origine abbia richiesto autorizzazioni, in particolare l'autorizzazione di lettura

-rw-r - r--

chmod 744

quindi scp il file a destinazione. Questo sarà risolto


3
-rw-r--r--è 644, non 744. L'impostazione dell'autorizzazione eseguibile su un file che non è effettivamente eseguibile può causare problemi.
G-Man dice 'Reinstate Monica' il

3

Che ha fissato il "Autorizzazione negata" per me era, sul server remoto, cambiare la proprietà della cartella di root: (! Questo può accadere quando si invia un file a un utente non root, e la directory è di proprietà di root) On la macchina remota (copia dest.):

sudo chown (your username) (remote folder)

Inoltre, abilitare tutte le autorizzazioni sulla cartella remota: (Non sempre necessario):

sudo chmod 777 (remote folder)

1

Hai gli argomenti da scpinvertire. Prima è fonte, quindi destinazione, come cp. man scpper ulteriori dettagli.


1

Permesso negato significa che non sei il root del server. Hai solo un account lì. Quindi in quel caso devi fare questo:

sudo scp -r /path2yourFolder/ username@server_Ip:/home/username

Questo verrà copiato nella tua home directory sul server.

Questo funzionerà anche:

scp -r /path2yourFolder/ username@server_Ip:~/

0

Installa uno strumento di Windows "mRemoteG" da www.mremoteng.org/

Crea la tua connessione SSH nella casella desiderata.

Fai clic sul menu "Trasferisci file".

Permetterà di trasferire facilmente i file da Windows a Linux.

Grazie.


0

AMI Amazon Linux

Assicurati di aver bisogno di impostare il percorso assoluto del server, da casa nel caso corrente:

scp file.txt SSH-ALIAS:/home/YOUR_USER/

0

Le stesse autorizzazioni si applicano su entrambi i lati di SCP. Questo errore verrà visualizzato se l'utente non dispone dell'autorizzazione per scrivere nella destinazione. I sintomi sembrano implicare la fonte, tuttavia nel mio caso la destinazione è stata creata da root e mancava l'autorizzazione di scrittura per l'account utente previsto.


0

Nel mio caso, ho anche provato a concedere tutte le autorizzazioni con -R alla cartella, ma ho comunque ricevuto l'errore relativo alle autorizzazioni.

Ho dovuto rimuovere "/" prima del percorso del server e della cartella di destinazione. Il motivo è perché Download è la prima cartella che posso elencare dopo aver inviato SSH al server, ad esempio: ssh tiennsloit@13.76.91.2

Questo funziona:

sudo scp -rp /Users/macintosh.vn/Downloads/bbhs_20190301.zip tiennsloit@13.76.91.2: Download

Questo non funzionava:

sudo scp -rp /Users/macintosh.vn/Downloads/bbhs_20190301.zip tiennsloit@13.76.91.2: / Download


0

Soluzione semplice. Assicurati di essere root. SCP sul telecomando e ti chiederà la password di root di quel computer. Ho appena avuto questo problema che era la soluzione. Li radichi radice.


Poiché gli accessi root sono normalmente disabilitati in sshd_config , dovresti mostrare all'OP come cambiarlo (anche se non è raccomandato).
ajgringo619,

Perché insisti sull'uso di root per copiare un (qualsiasi) file? Nota anche la risposta accettata da ~ 7 anni fa ...
Jeff Schaller

-3

prima di usare il comando scp, assicurati di dare i permessi di lettura, scrittura ed esecuzione a tutti quelli esterni. "chmod 777 nome_file"


puoi copiare file che non sono 777
Archemar
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.