Przesyłaj pliki za pomocą scp: odmowa uprawnień

24

Próbuję przesłać pliki z komputera zdalnego przy użyciu sshdo mojego komputera:

scp My_file.txt user_id@server:/Home

To powinno umieścić My_file.txt w folderze domowym na moim komputerze, prawda? dostaję

scp / Home: odmowa dostępu

Również gdy próbuję: ...@server:/Desktopw celu skopiowania plików ze zdalnego komputera na mój pulpit.

Co ja robię źle?

Erez
źródło
1
Jeśli chcesz skopiować plik do folderu domowego „ID_użytkownika”, użyj scp My_file.txt user_id@server:Kopiuje do folderu domowego użytkowników.
Manula Waidyanatha

Odpowiedzi:

36

Twoje polecenia próbują umieścić nowy dokument w katalogu głównym ( /) komputera. Co chcesz zrobić, to przenieść je do katalogu domowego (ponieważ nie masz uprawnień do zapisu /). Jeśli ścieżka do domu jest podobna, /home/erezspróbuj wykonać następujące czynności:

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

Możesz zastąpić ścieżkę do katalogu domowego skrótem ~/, aby następujące działania miały ten sam efekt:

scp My_file.txt user_id@server:~/

Możesz nawet całkowicie pominąć ścieżkę po drugiej stronie; oznacza to twój katalog domowy.

scp My_file.txt user_id@server:

Oznacza to, że aby skopiować plik na pulpit, możesz przenieść go do /home/erez/Desktop/:

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

lub za pomocą skrótu:

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

lub używając ścieżki względnej po stronie zdalnej, która jest interpretowana względem twojego katalogu domowego:

scp My_file.txt user_id@server:Desktop/

Edytować:

Jak już wspomniano @ckhan, musisz także zamienić argumenty, tak musi być

scp FROM TO

Jeśli więc chcesz skopiować plik My_file.txtz serwera user_id@serverna pulpit, spróbuj wykonać następujące czynności:

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

Jeśli plik My_file.txtznajduje się w twoim katalogu domowym na serwerze, możesz ponownie użyć skrótu:

scp user_id@server:~/My_file.txt ~/Desktop/
binfalse
źródło
- Próbowałem już: „~ /” dla „Home”, a także „~ / Desktop /. Oba zaowocowały: My_file.txt 100% 0 0,0 KB / s 00:00 i nie widzę plików w moim foldery. Co nadal robię źle? Bardzo dziękuję!
Erez
W drugim przykładzie polecenia ~należy je chronić przed oceną, aby można je było ocenić na hoście zdalnym: \~na przykład.
dan
1
Aby podziękować, zarejestrowałem się na stronie. Dziękuję, że uratowałeś mi dzień :)
Ad Infinitum
7

Przybyłem tu po „Przesyłanie plików za pomocą scp: odmowa uprawnień”, ponieważ miałem ten sam błąd.

W moim przypadku plik pobrany za pomocą scp nadpisałby plik należący do roota, a ja nie byłem rootem. Krótko mówiąc, sprawdź własność zastępowanego pliku.

PJ Brunet
źródło
1
W tym przypadku dzieje się tak dlatego, że próbuje pisać /Homei nie jest rootem, nie ma dostępu do zapisu na zewnątrz~/
Shadur
Pomagasz mi
longdeqidao
4

wydaje się, że jest to kwestia zezwolenia

Plik może nie mieć uprawnień do odczytu, ponieważ jest dostarczany do serwera docelowego jako konto źródłowe.

musisz upewnić się, że plik u źródła ma wymagane uprawnienia, zwłaszcza uprawnienia do odczytu

-rw-r - r--

chmod 744

następnie scp plik do miejsca docelowego. Zostanie to rozwiązane

Tabbu
źródło
3
-rw-r--r--to 644, a nie 744. Ustawienie uprawnień do pliku wykonywalnego, który nie jest tak naprawdę wykonywalny, może powodować problemy.
G-Man mówi „Przywróć Monikę”
3

Co naprawione „brak dostępu” dla mnie było, na zdalnym serwerze, zmienić właściciela folderu, do korzeni: (! Może się to zdarzyć, gdy wysyłasz plik do użytkownika bez uprawnień administratora, a katalog jest własnością root) On urządzenie zdalne (kopiowanie przeznaczenia):

sudo chown (your username) (remote folder)

Dla pewności włącz wszystkie uprawnienia do zdalnego folderu: (nie zawsze konieczne):

sudo chmod 777 (remote folder)
Stan Tatarnykov
źródło
1

Masz argumenty do scpodwrócenia. Najpierw źródło, potem cel cp. man scppo więcej szczegółów.

ckhan
źródło
1

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
0

Zainstaluj narzędzie do systemu Windows „mRemoteG” ze strony www.mremoteng.org/

Utwórz połączenie SSH z żądanym urządzeniem.

Kliknij menu „Prześlij plik”.

Umożliwi to łatwe przesyłanie plików z systemu Windows do systemu Linux.

dzięki.

Ogólne oprogramowanie
źródło
0

Amazon Linux AMI

Upewnij się, że musisz ustawić bezwzględną ścieżkę serwera, w domu w obecnym przypadku:

scp file.txt SSH-ALIAS:/home/YOUR_USER/
dimpiax
źródło
0

Te same uprawnienia obowiązują po obu stronach scp. Ten błąd pojawi się, jeśli użytkownik nie będzie miał uprawnień do zapisu w miejscu docelowym. Symptomy wydają się sugerować źródło, jednak w moim przypadku miejsce docelowe zostało utworzone przez użytkownika root i brakowało uprawnienia do zapisu dla zamierzonego konta użytkownika.

Jinzai
źródło
0

W moim przypadku próbowałem również przyznać wszystkie uprawnienia z opcją -R do folderu, ale nadal wystąpił błąd dotyczący uprawnień.

Musiałem usunąć „/” przed ścieżką docelowego serwera i folderu. Powodem jest to, że pliki do pobrania to pierwszy folder, który mogę wyświetlić po ssh na serwerze, na przykład: ssh [email protected]

To działa:

sudo scp -rp /Users/macintosh.vn/Downloads/bbhs_20190301.zip [email protected]: Pobieranie

To nie działało:

sudo scp -rp /Users/macintosh.vn/Downloads/bbhs_20190301.zip [email protected]: / Downloads

tiennsloit
źródło
0

Łatwa naprawa. Upewnij się, że jesteś rootem. SCP do pilota, a poprosi cię o hasło root do tych maszyn. Właśnie miałem ten problem, który był rozwiązaniem. Zrootujesz je.

Richard Evans
źródło
Ponieważ logowania użytkownika root są zwykle wyłączone w sshd_config , powinieneś pokazać PO, jak to zmienić (chociaż nie jest to zalecane).
ajgringo619
Dlaczego nalegasz na użycie roota do skopiowania (dowolnego) pliku? Zwróć także uwagę na przyjętą odpowiedź sprzed 7 lat ...
Jeff Schaller
-3

przed użyciem polecenia scp upewnij się, że masz uprawnienia do odczytu, zapisu i wykonywania dla wszystkich na zewnątrz. „chmod 777 nazwa_pliku”

tyson
źródło
możesz skopiować pliki, które nie są 777
Archemar