Копирование scp по ssh не работает - ошибка отказа в разрешении, пожалуйста?

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

Я использую 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

p.s. Возможно, я делаю это наоборот - я хочу отправить файл tar.gz который находится на моем рабочем столе, на удаленный сервер в папку /media/yadayda

У вас все в правильном порядке, насколько я понимаю, общий способ выполнения scp заключается в следующем:

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

Судя по вашему вопросу, у вас есть локальный файл, который вы хотите отправить на целевой сервер. Итак, у вас есть правильный синтаксис, и это хорошо!

Если вам отказано в разрешении, значит, вы используете неправильное имя пользователя или что-то не так с аутентификацией. Скорее всего, это связано с тем, что команда sudo работает только локально, для начала, поэтому она не даст вам root на удаленном компьютере, так что, вероятно, в этом и заключается проблема. Убедитесь, что пользователь, от имени которого вы входите в систему на удаленном сервере, имеет права на запись в папку, в которую вы пытаетесь выполнить запись.

Если проблема в том, что destinationuser не имеет доступа к этому местоположению без sudo, переместите файл в домашнюю папку destinationuser, затем sudo извлекает файл из командной строки на другом сервере, чтобы поместить его в нужное место.

Привет, у меня была такая же проблема с ошибкой разрешения, решенная таким образом

Убедитесь, что каталог, в который вы копируете, включен 192.168.0.4 принадлежит пользователю имя пользователя

chown username downloads

На вашем локальном компьютере затем выполните

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

Овации

Отказ в разрешении означает, что вы не являетесь корнем сервера. Вы просто держите там учетную запись. Итак, в этом случае вам нужно сделать это:

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

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

Это тоже сработает:

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

У меня была похожая проблема, это произошло потому, что ssh принимает -p xxxx для указания порта во время scp принимает -P xxxx чтобы указать порт. Незначительное несоответствие, которое так легко пропустить:(

Эта ошибка возникла у меня, когда файл уже существовал в целевом расположении, а существующий файл имел разрешения только для чтения (предотвращая перезапись файла). В моем случае я просто вошел в систему и удалил существующий файл, и это исправило проблему.

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

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

В моем случае это было из соображений безопасности на принимающей стороне, мне пришлось изменить каталог, чтобы разрешить удаленному пользователю записывать файл (я изменил каталог 777, но это внутренняя лаборатория)