Передача файлів за допомогою scp: дозвіл відхилено


24

Я намагаюся перенести файли з віддаленого комп'ютера за допомогою sshмого комп'ютера:

scp My_file.txt user_id@server:/Home

Це повинно помістити My_file.txt у домашню папку мого власного комп’ютера, правда? я отримав

scp / Головна: у дозволі відмовлено

Також коли я намагаюся:, ...@server:/Desktopщоб скопіювати файли з віддаленого комп'ютера на робочий стіл.

Що я роблю неправильно?


1
Якщо ви хочете скопіювати файл у домашню папку "user_id", скопіюйте його в домашню папку scp My_file.txt user_id@server:користувачів.
Манула Вайдянатаха

Відповіді:


36

Ваші команди намагаються поставити новий документ у корінь ( /) вашої машини. Що ви хочете зробити, це перенести їх у свій домашній каталог (оскільки у вас немає дозволів писати /). Якщо шлях до вашого будинку є чимось на кшталт /home/erezспробуйте:

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

Ви можете замінити шлях до домашнього каталогу ярликом ~/, тому наступне матиме такий же ефект:

scp My_file.txt user_id@server:~/

Ви навіть можете повністю залишити шлях на віддаленій стороні; це означає, що ваш домашній каталог.

scp My_file.txt user_id@server:

Тобто, щоб скопіювати файл на робочий стіл, ви можете перенести його на /home/erez/Desktop/:

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

або за допомогою ярлика:

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

або використовуючи відносний шлях на віддаленій стороні, який інтерпретується відносно вашого домашнього каталогу:

scp My_file.txt user_id@server:Desktop/

Редагувати:

Як вже згадував @ckhan, вам також доведеться міняти аргументами, це має бути

scp FROM TO

Отже, якщо ви хочете скопіювати файл My_file.txtз сервера user_id@serverна робочий стіл, ви повинні спробувати наступне:

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

Якщо файл My_file.txtзнаходиться у вашому домашньому каталозі на сервері, ви знову можете скористатися ярликом:

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

- Я спробував: "~ /" для "Домашнього" зараз, а також "~ / Desktop /. Обидва призвели до: My_file.txt 100% 0 0,0 КБ / с 00:00, і я не бачу файлів у своєму папки. Що я все ще роблю неправильно? Дякую!
Erez,

У вашому другому прикладі команди ~слід захистити від оцінки так, щоб його можна було оцінити на віддаленому хості: \~наприклад.
дан

1
Щоб подякувати, я зареєструвався на веб-сайті. Дякую, що ти врятував мій день :)
Ad Infinitum

7

Я прийшов сюди, щоб "Передати файли за допомогою scp: дозволу відмовлено", оскільки у мене була та сама помилка.

У моєму випадку файл, завантажений із scp, перезаписав би файл, що належить root, і я не був root. Словом, перевірте право власності на файл, який перезаписується.


1
У цьому випадку це тому, що він намагається писати, /Homeа не мати root, у нього немає доступу для запису назовні~/
Shadur

Ти мені допомагаєш.
longdeqidao

4

це, здається, видає дозвіл

Цей файл, можливо, не має дозволу на читання, оскільки він доставляється на цільовий сервер як вихідний рахунок.

вам потрібно переконатися, що файл у джерелі має необхідні дозволи, особливо дозвіл на читання

-rw-r - r--

chmod 744

потім скапуйте файл до місця призначення. Це буде вирішено


3
-rw-r--r--- це 644, а не 744. Установлення дозволу на виконання файлу, який насправді не виконується, може спричинити проблеми.
G-Man каже: "Відновіть Моніку"

3

Що констатували «дозвіл відмовлено» для мене був, на віддаленому сервері, змінити власник папки в корінь: (! Це може статися , коли ви відправляєте файл некорінних користувача, а каталог знаходиться в власності кореня) на віддалена машина (копіювання призначення.):

sudo chown (your username) (remote folder)

Також обов'язково ввімкніть усі дозволи у віддаленій папці: (Не завжди потрібно):

sudo chmod 777 (remote folder)

1

У вас є аргументи для зміни scp. Спочатку це джерело, потім призначення, як cp. man scpдля отримання детальної інформації.


1

Відмова від дозволу означає, що ви не є коренем сервера. Ви просто тримаєте там рахунок. Тож у цьому випадку вам потрібно зробити це:

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

Це буде скопійовано у домашній каталог на сервері.

Це також буде працювати:

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

0

Встановіть інструмент Windows "mRemoteG" з www.mremoteng.org/

Створіть своє SSH-з'єднання до потрібного вікна.

Клацніть на меню "Передати файл".

Це дозволить легко переносити файл з Windows в Linux.

Спасибі.


0

Amazon Linux AMI

Будьте впевнені, що вам потрібно встановити абсолютний шлях до сервера в домашньому випадку:

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

0

Такі ж дозволи діють з обох сторін scp. Ви отримаєте цю помилку, якщо користувачеві не вистачить дозволу на запис у пункт призначення. Здається, що симптоми впливають на джерело, проте в моєму випадку призначення було створене корінцем і не було дозволу на запис для призначеного облікового запису користувача.


0

У моєму випадку я також намагався надати весь дозвіл з -R в папку, але все ж отримав помилку щодо дозволу.

Мені довелося видалити "/" перед шляхом до цільового сервера та папки. Причина полягає в тому, що завантаження - це перша папка, яку я можу перерахувати після переходу на сервер, наприклад: ssh tiennsloit@13.76.91.2

Це працює:

sudo scp -rp /Users/macintosh.vn/Downloads/bbhs_20190301.zip tiennsloit@13.76.91.2: Завантаження

Це не працює:

sudo scp -rp /Users/macintosh.vn/Downloads/bbhs_20190301.zip tiennsloit@13.76.91.2: / Завантаження


0

Легке виправлення. Переконайтесь, що ВИ є коренем. SCP на віддалений, і він попросить вас, щоб машини кореневого пароля. Просто ця проблема була вирішенням. Ви викорінюєте їх корінь.


Оскільки кореневі логіни зазвичай відключені в sshd_config , вам слід показати OP, як це змінити (хоча це не рекомендується).
ajgringo619

Чому ви наполягаєте на використанні root для копіювання (будь-якого) файлу? Зауважте також прийняту відповідь від ~ 7 років тому ...
Джефф Шаллер

-3

перед тим, як скористатися командою scp, переконайтеся, що ви даєте дозволи читати, писати та виконувати всім, хто знаходиться назовні. "chmod 777 ім'я файлу"


ви можете скопіювати файл, який не є 777
Архемар
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.