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

ps я мог бы поступить иначе - я хочу отправить файл tar.gz, который находится на моем рабочем столе, на удаленный сервер в папку /media/yadayda

7 ответов

Решение

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

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

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

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

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

Привет, эта проблема с разрешением была решена таким образом

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

chown username downloads

На твоей локальной машине потом делай

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

ура

Permisssion Denied означает, что вы не являетесь корнем сервера. Вы просто держите аккаунт там. Так что в этом случае вам нужно сделать это:

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 на исходной машине.

Другие вопросы по тегам