kopiowanie scp przez ssh nie działa - błąd odmowy uprawnień, proszę?

82

Doprowadza mnie to do szału! Chcę tylko przenieść jeden prosty plik z laptopa na serwer.

Używam Ubuntu na obu komputerach.

Więc mam:

-rwxr-xr-x 1 sandro    414622 2011-10-14 23:42 sandrophoto-html.tar.gz

I przesyłam to za pomocą:

sudo scp -P XXXX sandrophoto-html.tar.gz [email protected]:/media/xx/xx/xx

I dostaję: scp: /media/xx/xx/xx/sandrophoto-html.tar.gz: Permission denied

ps Być może robię to w drugą stronę - chcę wysłać plik tar.gz znajdujący się na moim pulpicie do zdalnego serwera w folderze / media / yadayda

Edd
źródło
2
W moim przypadku, to był powód bezpieczeństwa po stronie odbierającej, musiałem chmod katalogu, aby umożliwić użytkownikowi zdalnemu zapisanie pliku (i chmod 777 katalog - ale to jest laboratorium wewnętrzne)
ilansch

Odpowiedzi:

94

Masz wszystko w odpowiedniej kolejności z tego, co rozumiem, ogólny sposób wykonania scp jest następujący:

scp sourceuser@sourcehost:/path/to/source/file destinationuser@destinationhost:/path/to/destination/

Sądząc po pytaniu, masz plik lokalny, który chcesz wysłać na serwer docelowy. Więc masz właściwą składnię, która jest dobra!

Jeśli otrzymujesz odmowę dostępu, oznacza to, że nie używasz poprawnej nazwy użytkownika lub coś jest nie tak z uwierzytelnianiem. Najprawdopodobniej dzieje się tak, ponieważ polecenie sudo działa tylko lokalnie, na początek, więc nie da ci roota na zdalnym komputerze, więc prawdopodobnie jest to problem. Upewnij się, że użytkownik, na który logujesz się na zdalnym serwerze, ma uprawnienia do zapisu w lokalizacji, do której próbujesz pisać.

Jeśli problem polega na tym, że użytkownik docelowy nie ma dostępu do tej lokalizacji bez sudo, przenieś plik do folderu domowego użytkownika docelowego, a następnie sudo mv plik z powłoki na innym serwerze, aby umieścić go we właściwej lokalizacji.

Ania
źródło
9
Dziękuję, musiałem dodać uprawnienie do zapisu do katalogu docelowego
PiKey
@PiKey To powinna być odpowiedź
Code-Guru
39

Cześć, ten sam problem z błędem uprawnień rozwiązał to w ten sposób

Upewnij się, że katalog kopiujesz ON 192.168.0.4jest własnością użytkownika nazwa użytkownika

chown username downloads

Następnie zrób na komputerze lokalnym

sudo scp filename.zip [email protected]:/etc/Myfiles/downloads

Twoje zdrowie

mainakibui
źródło
dzięki, były uprawnienia, konkretnie tutaj musiałem użyć chmodw folderze docelowym na zdalnym serwerze
Aquarius Power
26

Odmowa zezwolenia oznacza, że ​​nie jesteś rootem serwera. Po prostu masz tam konto. W takim przypadku musisz to zrobić:

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

Spowoduje to skopiowanie do katalogu domowego na serwerze.

Będzie to również działać:

scp -r /path2yourFolder/ username@server_Ip:~/
Abhishek Kaushik
źródło
2
ratownik! : ~ / zrobił to dla mnie.
trdavidson
~/jest rzeczywiście sposób, -rjest rekurencyjne kopiowanie całego katalogu.
Noam Manos,
9

Ten błąd wystąpił dla mnie, gdy plik istniał już w lokalizacji docelowej, a istniejący plik miał uprawnienia tylko do odczytu (uniemożliwiając nadpisanie pliku). W moim przypadku właśnie się zalogowałem i usunąłem istniejący plik, co rozwiązało problem.

Kevin
źródło
7

Miałem podobny problem, stało się tak, ponieważ sshpotrzeba -p xxxxokreślenia portu, a scppotrzeba -P xxxxokreślenia portu. Drobne niespójności, tak łatwo przeoczyć :(

sztylet
źródło
Wysławiam Cię. Nie przejmuj się mną, jeśli dodam kilka słów kluczowych scp doesn't work Permission denied (publickey). lost connection for ec2 compute.amazonaws.com
obsługujących
0

Miałem ten sam problem. Dowiedziałem się, że katalog zawierający mój plik źródłowy nie ma wystarczających uprawnień. Właśnie zmieniłem tryb rekurencyjnie za pomocą: chmod -R 771 directory_pathna komputerze źródłowym.

Changba
źródło
0

Próbowałem skopiować z mojego komputera lokalnego jako username@localhost; klucz SSH, którego używałem, nie był zarejestrowany, aby uzyskać dostęp do mojego lokalnego hosta, więc odmawiałem zgody. Kiedy usunąłem to z części źródłowej , zadziałało.

Chaim Eliyah
źródło