Передача файлов с использованием scp: разрешение запрещено


23

Я пытаюсь передать файлы с удаленного компьютера, используя sshмой компьютер:

scp My_file.txt user_id@server:/Home

Это должно поместить My_file.txt в домашнюю папку на моем компьютере, верно? я получил

scp / Home: отказано в разрешении

Также, когда я пытаюсь:, ...@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
Чтобы поблагодарить вас, я зарегистрировался на сайте. Спасибо, что спасли мой день :)
Объявление Infinitum

7

Я пришел сюда для «Передачи файлов с использованием scp: разрешение запрещено», потому что у меня была та же ошибка.

В моем случае файл, загруженный с помощью scp, переписал бы файл, принадлежащий пользователю root, а я не был root. Короче говоря, проверьте владение перезаписываемым файлом.


1
В данном случае это потому, что он пытается писать /Homeи не является пользователем root, у него нет прав на запись извне~/
Shadur

Вы помогаете мне.
Лонгдекидао

4

это похоже на проблему с разрешением

Файл может не иметь разрешений на чтение, поскольку он доставляется на конечный сервер в качестве исходной учетной записи.

Вы должны убедиться, что файл в источнике имеет необходимые разрешения, особенно разрешение на чтение

-rw-р - r--

CHMOD 744

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


3
-rw-r--r--644, а не 744. Установка разрешения для исполняемого файла, который на самом деле не является исполняемым, может вызвать проблемы.
G-Man говорит: «Восстанови Монику»

3

Что констатировали «разрешение отказано» для меня был, на удаленном сервере, изменить владелец папки в корень: (! Это может произойти , когда вы отправляете файл некорень пользователя, а каталог находится в собственности корня) на удаленная машина (копирование Dest.):

sudo chown (your username) (remote folder)

Также, чтобы быть уверенным, включите все разрешения для удаленной папки: (Не всегда необходимо):

sudo chmod 777 (remote folder)

1

У вас есть аргументы для scpобратного. Сначала источник, потом пункт назначения, как cp. man scpБольше подробностей.


1

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

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. Вы получите эту ошибку, если у пользователя нет разрешения на запись в пункт назначения. Симптомы, по-видимому, связаны с источником, однако в моем случае место назначения было создано пользователем root и не имело права на запись для предполагаемой учетной записи пользователя.


0

В моем случае я также попытался предоставить все разрешения с -R для папки, но все равно получил ошибку о разрешении.

Мне пришлось удалить "/" перед путем целевого сервера и папки. Причина в том, что «Загрузки» - это первая папка, которую я могу перечислить после того, как я отправлю ssh на сервер, например: 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

Легко исправить. Убедитесь, что вы root. SCP к удаленному, и он попросит вас ввести пароль root для этой машины. Просто была эта проблема, которая была решением. Вы корень их корень.


Поскольку root-логины обычно отключаются в sshd_config , вы должны показать OP, как это изменить (хотя это и не рекомендуется).
ajgringo619

Почему вы настаиваете на использовании root для копирования (любого) файла? Обратите внимание также на принятый ответ от ~ 7 лет назад ...
Джефф Шаллер

-3

перед использованием команды scp убедитесь, что вы даете разрешения на чтение, запись и выполнение всем, кто находится снаружи. "chmod 777 file_name"


Вы можете скопировать файл, который не является 777
Archemar
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.