Я видел много вариантов этого вопроса, но не думаю, что какой-либо из них соответствует моей ситуации.
Я нахожусь на компьютере на работе, который подключен к серверу по SSH. Находясь на этом сервере, я хотел бы SCP-пробросить некоторые файлы с моего домашнего Mac.
Я могу без проблем подключиться к своему Mac по SSH с сервера с помощью обычной команды:
ssh [email protected]
Однако при попытке SCP я получаю:-bash: /usr/bin/scp: Отказано в доступе
Я использую команду:
scp [email protected]:/absolute/filepath/i* local/folder
Я также пробовал флаги number -p. На моем Mac есть только одна учетная запись, и это учетная запись администратора. Я не уверен, есть ли проблемы с разрешениями или это из-за того, что я подключен к серверу по SSH, или это что-то еще.
Я также могу успешно выполнять SCP с сервера на свой Mac, когда делаю это с моего Mac дома.
Какие-либо предложения?
Редактировать: Дополнительная важная информация изначально размещена в комментариях, потому что у меня случился переполох по поводу протокола (моя вина).
Конкретно в связи с моим последним предложением о возможности «обратить» SCP: следующая команда работает, когда я вошел в свой Mac как локальная машина:
scp -P 22003 [email protected]:Data/path/i* /Full/Path/On/Mac/
Запуск ls -l /usr/bin/scp
на сервере (локальном) возвращает следующее:
rwxr-x---. 1 корень корень 67648 31 авг 12:40 /usr/bin/scp
Запуск ls -l /usr/bin/scp
на Mac (удалённый) возвращает следующее:
-rwxr-xr-x 1 корневое колесо 81360 1 дек 14:45 /usr/bin/scp
решение1
Приведенная выше команда завершается ошибкой, но следующая команда работает, когда я вхожу в систему Mac как локальный компьютер:
scp -P 22003 [email protected]:Data/path/i* /Full/Path/On/Mac/
Итак, с сервера, к которому вы не можете получить доступ, /usr/bin/scp
вы получаете ошибку "Доступ запрещен". Причин для такой ошибки может быть много, например, права доступа к файлам.
Поскольку вы можете сделать это scp
с вашего Mac и ssh
с сервера на ваш Mac, я думаю, что это то, что вам следует сделать на данный момент. ssh
на Mac и scp
оттуда.
Чтобы устранить неполадки на вашем сервере, сначала проверьте, есть ли у вас разрешения на выполнение /usr/bin/scp
на сервере:
ls -l /usr/bin/scp
Вы видите что-то вроде:
-rwxr-xr-x 1 root root 84104 Jan 16 14:28 /usr/bin/scp
^ ^ ^
По сути, файл принадлежит пользователю root
(с правами на чтение, запись и выполнение), члены группы root
имеют права на чтение и выполнение, как и все остальные (все остальные, вошедшие в систему).
Если у вас есть x
(выполнить) привилегии на команду, используйте scp -v
для увеличения многословности (можно добавить больше v
', до трех, iirc), вы можете увидеть сообщение, которое скажет вам, что не так. Вы также можете попробовать ldd /usr/bin/scp
посмотреть, все ли зависимости есть и читаются.