Локальний файл SSH SCP для віддаленого доступу в терміналі Mac OS X


90

Я намагаюся скопіювати локальний файл 'magento.tar.gz' з моєї локальної машини на віддалений сервер за допомогою SSH через VPN. Це підключення до внутрішнього IP-адреси віртуальної машини, який я використовував тут як xx.xxxx.

У мене є повний доступ "sudo" до облікового запису SSH, тому не повинно виникнути проблем із копіюванням. Я спробував наступне:

Я спробував наступне (файл magento.tar.gz вже є в локальному кореневому каталозі)

sudo scp magento.tar.gz user@xx.x.x.xx/var/www/

Це просить мене ввести мій локальний пароль. Потім повертаєтьсяcp: user@xx.x.x.xx/var/www: Not a directory

sudo scp /Users/myname/magento.tar.gz user@xx.x.x.xx/var/www/

Повертає те саме.

Чи потрібно мені десь включати SSH?

Чи потрібно спочатку підключатися до сайту через SSH?

Примітка: Мені вдалося підключитися через SSH до сервера, перейти до каталогу та створити папку та видалити її за допомогою sudo mkdirтощо, тому я точно маю дозволи.

Відповіді:


202

Спочатку :після IP-адреси потрібно додати, щоб вказати такий шлях:

scp magento.tar.gz user@xx.x.x.xx:/var/www

Я не думаю , що вам потрібно . У цьому випадку це не впливає на віддалену машину, а лише на локальну команду.sudoscp

Тоді, якщо ваш user@ xx.xxxx не має доступу до запису, /var/wwwвам потрібно зробити це за 2 рази:

Скопіюйте на віддалений сервер у домашній папці ( :представляє віддалену домашню папку, використовуйте, :subfolder/якщо потрібно, або :/home/user/для повного шляху):

scp magento.tar.gz user@xx.x.x.xx:

Потім SSH і перемістіть файл:

ssh user@xx.x.x.xx
sudo mv magento.tar.gz /var/www

Дякую. Я спробував це з двокрапкою, але мені відмовили у дозволі - мені повідомили, що я маю повний доступ до sudo, тому дозволи не повинні бути проблемою.
Джеймс,

1
Дякую!!! Мені довелося SSH пульта дистанційного керування та pwd, щоб знайти, до якого каталогу за замовчуванням я потрапив, який був / home / username - scp magento.tar.gz user@xx.xxxx: / home / username / зробив трюк!
James

19

Просто для уточнення відповіді, даного JScoobyCed, команда scp не може копіювати файли в каталоги, які потребують адміністративного дозволу. Однак ви можете використовувати команду scp для копіювання в каталоги, що належать віддаленому користувачеві.

Отже, щоб скопіювати в каталог, який вимагає кореневих привілеїв, спочатку потрібно скопіювати цей файл у каталог, що належить віддаленому користувачеві, за допомогою команди scp. Далі ви повинні увійти у віддалений обліковий запис за допомогою ssh. Після входу в систему ви можете перемістити файл у вибраний каталог за допомогою команди sudo mv. Коротше кажучи, команди для використання такі:

За допомогою scp скопіюйте файл до каталогу в обліковому записі віддаленого користувача, наприклад до каталогу Documents:

scp /path/to/your/local/file remoteUser@some_address:/home/remoteUser/Documents

Далі увійдіть до облікового запису віддаленого користувача за допомогою ssh, а потім перемістіть файл в обмежений каталог за допомогою sudo:

ssh remoteUser@some_address
sudo mv /home/remoteUser/Documents/file /var/www

0

Слідкуйте, щоб у вашому імені файлу теж не було :. Я виявив, що мені довелося, mv blah-07-08-17-02:69.txt no_colons.txtа потім scp no-colons.txt server:не забудьте mvповернутися на сервер. Про всяк випадок це була проблема.


1
Це не проблема, якщо просто додати ./перед місцевою назвою, наприкладscp ./blah-07-08-17-02:69.txt server:
Anders Tornblad
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.