Încerc să transfer fișiere de pe computerul de la distanță folosind ssh
pe computerul meu:
scp My_file.txt user_id@server:/Home
Aceasta ar trebui să plaseze My_file.txt în folderul de acasă de pe computerul meu, nu? Primesc
scp / Home: permisiunea refuzată
De asemenea, când încerc: ...@server:/Desktop
, pentru a copia fișierele de pe computerul de la distanță pe desktopul meu.
Ce fac greșit?
Comentarii
Răspuns
Comenzile dvs. încearcă să pună noul document la rădăcină (/
) al mașinii dvs. Ceea ce doriți să faceți este să le transferați în directorul de acasă (deoarece nu aveți permisiuni pentru a scrie în /
). Dacă calea spre casa dvs. este ceva de genul /home/erez
încercați următoarele:
scp My_file.txt user_id@server:/home/erez/
Puteți înlocui calea către directorul home cu comanda rapidă ~/
, deci următoarele vor avea același efect:
scp My_file.txt user_id@server:~/
Puteți chiar să părăsiți ieșiți complet pe calea de pe partea îndepărtată; aceasta înseamnă directorul dvs. de pornire.
scp My_file.txt user_id@server:
Adică, pentru a copia fișierul pe desktop, vă recomandăm să îl transferați la /home/erez/Desktop/
:
scp My_file.txt user_id@server:/home/erez/Desktop/
sau folosind comanda rapidă:
scp My_file.txt user_id@server:~/Desktop/
sau utilizând o cale relativă pe partea de la distanță, care este interpretată în raport cu directorul dvs. de acasă:
scp My_file.txt user_id@server:Desktop/
Editați:
Ca @ ckhan deja menționat, trebuie să schimbați și argumentele, trebuie să fie
scp FROM TO
Deci, dacă doriți să copiați fișierul My_file.txt
de pe server user_id@server
pe desktopul dvs. ar trebui să încercați următoarele:
scp user_id@server:/path/to/My_file.txt ~/Desktop/
Dacă fișierul My_file.txt
se află în directorul dvs. principal de pe server, puteți utiliza din nou comanda rapidă:
scp user_id@server:~/My_file.txt ~/Desktop/
Comentarii
- – Am ‘ am încercat: ” ~ / pentru ‘ Acasă ‘ acum și, de asemenea, ” ~ / Desktop /. Ambele au avut ca rezultat: Fișierul_meu.txt 100% 0 0,0 KB / s 00:00 și nu pot vedea fișierele din folderele mele. Ce fac în continuare greșit? Mulțumesc mult!
- La al doilea exemplu de comandă,
~
ar trebui protejat de evaluare pentru a fi evaluat pe gazda de la distanță:\~
de exemplu. - Pentru a vă mulțumi, m-am înregistrat pe site. Mulțumesc că mi-ai salvat ziua 🙂
Răspuns
Am venit aici pentru „Transfer fișiere folosind scp: permisiunea refuzată „pentru că am avut aceeași eroare.
În cazul meu, fișierul descărcat cu scp ar fi suprascris un fișier deținut de root și nu eram root. Pe scurt, verificați proprietatea fișierului fiind suprascris.
Comentarii
- În acest caz, ‘ este pentru că el ‘ încearcă să scrie pe
/Home
și nefiind rădăcină, el nu are ‘ acces la scriere în afara~/
- Mă ajutați.
Răspundeți
Ceea ce a rezolvat „permisiunea refuzată” pentru mine a fost, pe serverul de la distanță, schimbarea proprietății folderului în root: (Acest lucru se poate întâmpla atunci când trimiteți un fișier către un utilizator non-root, iar directorul este deținut de root! ) Pe aparatul la distanță (destinație copiere):
sudo chown (your username) (remote folder)
De asemenea, pentru a fi sigur, activați toate permisiunile din folderul la distanță: (Nu întotdeauna este necesar):
sudo chmod 777 (remote folder)
Răspuns
acest lucru pare a fi o problemă cu permisiunea
Este posibil ca fișierul să nu aibă permisiuni de citire deoarece este livrat la serverul de destinație ca cont sursă.
trebuie să vă asigurați că fișierul de la sursă are permisiuni necesare, în special permisiunea de citire
-rw-r – r–
chmod 744
apoi scp fișierul la destinație. Acest lucru va fi rezolvat
Comentarii
-
-rw-r--r--
este 644, nu 744. Setarea permisiunii executabile pe un fișierul care nu este de fapt executabil poate provoca probleme.
Răspuns
Aveți argumentele pentru scp
inversat.Mai întâi este sursa, apoi destinația, ca cp
. man scp
pentru mai multe detalii.
Răspuns
După cum a subliniat Jinzai, folderul la distanță poate fi deținut de rădăcină. În cazul meu, cineva (sau ceva) a schimbat proprietarul folderului de acasă al utilizatorului a rădăcina. Deci, când am încercat să trimit un fișier către un server la distanță, a apărut o eroare de refuzare a permisiunii.
Puteți verifica proprietarul folderului cu comanda ls -l
:
drwxr-xr-x 5 root root 4096 Oct 21 08:16 user2
În exemplul de mai sus, folderul user2 este deținut de root. Puteți schimba proprietarul astfel:
chown user2:user2 user2
Există, de asemenea, o modalitate mai rapidă de a verifica dacă serverul blochează un fișier prin scp sau nu. Încercați să creați un fișier în folderul țintă, de exemplu cu touch test_file
. Dacă nu ați putut crea un fișier în dosar, atunci nu veți putea trimite fișierul aici de la distanță de același utilizator.
Răspuns
Permisiunea refuzată înseamnă că nu sunteți rădăcina serverului. Pur și simplu deții un cont acolo. Deci, în acest caz, trebuie să faceți acest lucru:
sudo scp -r /path2yourFolder/ username@server_Ip:/home/username
Aceasta se va copia în directorul dvs. de acasă de pe server.
Acest lucru va funcționa și :
scp -r /path2yourFolder/ username@server_Ip:~/
Răspuns
Amazon Linux AMI
Asigurați-vă că trebuie să setați calea absolută a serverului, de la acasă în cazul curent:
scp file.txt SSH-ALIAS:/home/YOUR_USER/
Răspunde
Instalează un instrument Windows” mRemoteG „de pe www.mremoteng.org/
Creați conexiunea SSH la caseta dorită.
Faceți clic pe meniul „Transfer File”.
Vă va permite să transferați fișierul cu ușurință de la Windows la Linux.
mulțumesc.
Răspuns
Aceleași permisiuni se aplică pe ambele părți ale SCP. Veți primi această eroare dacă utilizatorul nu are permisiunea de a scrie la destinație. Simptomele par să implice sursa, cu toate acestea, în cazul meu, destinația a fost creată de root și nu avea permisiunea de scriere pentru contul de utilizator intenționat.
Răspuns
În cazul meu, am încercat, de asemenea, să acord toate folderele cu -R în dosar, dar totuși am primit eroarea legată de permisiune.
A trebuit să elimin „/” înainte de calea serverului și folderului țintă. Motivul este pentru că Descărcări este primul folder pe care îl pot lista după ce am trimis serverul, de exemplu: ssh [email protected]
Acest lucru funcționează:
sudo scp -rp /Users/macintosh.vn/Downloads/bbhs_20190301.zip [email protected]: Descărcări
Acest lucru nu funcționa:
sudo scp -rp /Users/macintosh.vn/Downloads /bbhs_20190301.zip [email protected]: / Descărcări
Răspuns
Remediere ușoară. Asigurați-vă că sunteți rădăcină. SCP la telecomandă și vă va cere parola de root a mașinilor. Tocmai am avut această problemă care a fost soluția. Le rootezi rădăcină.
Comentarii
- Deoarece datele de conectare root sunt dezactivate în mod normal în sshd_config , ar trebui să arăți OP cum pentru a schimba acest lucru (deși ‘ nu este recomandat).
- De ce insistați să utilizați root pentru a copia un (orice) fișier? Observați, de asemenea, răspunsul acceptat de acum aproximativ 7 ani …
Răspuns
înainte de a utiliza comanda scp, faceți sigur că dați permisiunile de citire, scriere și executare tuturor celor din afara. „chmod 777 file_name”
Comentarii
- puteți copia fișiere care nu sunt 777
scp My_file.txt user_id@server:
Copiază în dosarul de start al utilizatorilor.