scp копія через ssh не працює - у дозволі відхилено помилку, будь ласка?


82

Це ганяє мене! Я просто хочу перенести один простий файл з ноутбука на сервер.

Я використовую ubuntu на обох машинах.

Отже, у мене є:

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

І я надсилаю його за допомогою:

sudo scp -P XXXX sandrophoto-html.tar.gz usern@server.local:/media/xx/xx/xx

І я отримую: scp: /media/xx/xx/xx/sandrophoto-html.tar.gz: Permission denied

ps Я можу зробити це навпаки - я хочу надіслати файл tar.gz, який знаходиться на моєму робочому столі, на віддалений сервер у папку / медіа / yadayda


2
У моєму випадку це було причиною безпеки на стороні прийому, я повинен був chmod каталог дозволити віддаленому користувачеві записати файл (я chmod 777 каталог - але це внутрішня лабораторія)
ilansch

Відповіді:


94

У вас все в правильному порядку, наскільки я розумію, загальний спосіб, як це робиться, - це:

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

Судячи з вашого запитання, у вас є локальний файл, який ви хочете надіслати на цільовий сервер. Отже, у вас є правильний синтаксис, що добре!

Якщо ви отримуєте відмову в дозволі, ви не використовуєте правильне ім’я користувача або щось не так з аутентифікацією. Швидше за все, це тому, що команда sudo працює лише локально, для початку, тому вона не дасть вам root на віддаленому вікні, так що, мабуть, проблема. Переконайтеся, що користувач, до якого ви входите, як на віддаленому сервері, має дозволи на запис до місця, в яке ви намагаєтесь написати.

Якщо проблема в тому, що цільовий користувач не має доступу до цього місця без sudo, перемістіть файл у домашню папку призначенняuser, а потім sudo mv-файл із оболонки на іншому сервері, щоб розмістити його у потрібному місці.


9
Дякую, мені довелося додати дозвіл на запис до каталогу призначення
PiKey

@PiKey Це має бути відповідь
Code-Guru

39

Привіт, ця сама проблема помилки дозволу вирішила її таким чином

Переконайтеся, що каталог, в який ви копіюєте 192.168.0.4, належить ім'я користувача

chown username downloads

На вашій місцевій машині тоді зробіть

sudo scp filename.zip username@192.168.0.4:/etc/Myfiles/downloads

Ура


thx, були дозволи, зокрема тут мені довелося використовувати chmodпапку призначення на віддаленому сервері
Водолій Power

26

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

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

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

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

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

2
рятівник! : ~ / зробив це для мене.
trdavidson

~/Дійсно, -rце для рекурсивного копіювання всього каталогу.
Ноам Манос

9

Ця помилка трапилася для мене, коли файл вже існував у цільовому місці, а існуючий файл мав дозволи лише для читання (не дозволяючи перезаписати файл). У моєму випадку я просто увійшов і видалив існуючий файл, і це виправило проблему.


7

У мене була подібна проблема, це трапилося, тому що sshпотрібно -p xxxxвказати порт, тоді як scpпотрібно -P xxxxвказати порт. Невелика непослідовність, так легко пропустити :(


Хвалимо вас. Не заперечуйте, якщо я додаю пару ключових слів Google, щоб зробити це більш видимим:scp doesn't work Permission denied (publickey). lost connection for ec2 compute.amazonaws.com
user1717828

0

Була така ж проблема. Я дізнався, що в каталозі, що містить мій вихідний файл, було недостатньо дозволу. Тому я просто змінив режим рекурсивно, використовуючи: chmod -R 771 directory_pathна вихідній машині.


0

Я намагався скопіювати як з місцевої машини як username@localhost; ключ SSH, яким я користувався, не був зареєстрований, щоб отримати доступ до свого localhost, тому мені було отримано відмову в дозволі. Коли я видалив це з вихідної частини, воно спрацювало.

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