ssh scp локальный файл для удаленного в терминале mac os x

<p>я пытаюсь скопировать локальный файл "magento.tar.gz" со своего локального компьютера на удаленный сервер, используя ssh через vpn. это подключение к внутреннему ip-адресу виртуальной машины, который я использовал здесь как xx.x.x.xx.</p><p>у меня есть полный доступ 'sudo' к учетной записи ssh, поэтому не должно возникнуть проблем с копированием. я пробовал следующее:</p><p>я пробовал следующее (файл magento.tar.gz уже находится в локальном корневом каталоге)</p><pre><code>sudo scp magento.tar.gz user@xx.x.x.xx/var/www/ </code></pre><p>это попросит меня ввести свой локальный пароль. после этого возвращает <code>cp: user@xx.x.x.xx/var/www: not a directory</code></p><pre><code>sudo scp /users/myname/magento.tar.gz user@xx.x.x.xx/var/www/ </code></pre><p>возвращает то же самое.</p><p>нужно ли включать ssh там где-нибудь?</p><p>нужно ли сначала подключаться через сайт по ssh?</p><p>примечание: мне удалось подключиться через ssh к серверу, перейти к каталогу, создать папку и удалить ее, используя <code>sudo mkdir</code> и т.д., поэтому у меня определенно есть разрешения.</p>

<p>сначала вам нужно добавить <code>:</code> после ip-адреса, чтобы указать следующий путь:</p><pre><code>scp magento.tar.gz user@xx.x.x.xx:/var/www </code></pre><p>я не думаю, что вам нужно <code>sudo</code> <code>scp</code>. в этом случае это не влияет на удаленный компьютер, только локальная команда.</p><p>тогда, если ваш <code>user</code>@xx.x.x.xx не имеет доступа на запись к <code>/var/www</code>, то вам нужно сделать это 2 раза:</p><p>скопируйте на удаленный сервер в вашей домашней папке (<code>:</code> представляет вашу удаленную домашнюю папку, используйте <code>:subfolder/</code>, если необходимо, или <code>:/home/user/</code> для полного пути):</p><pre><code>scp magento.tar.gz user@xx.x.x.xx: </code></pre><p>затем ssh и переместить файл:</p><pre><code>ssh user@xx.x.x.xx sudo mv magento.tar.gz /var/www </code></pre>

<p>просто чтобы уточнить ответ, данный jscoobyced, команда scp не может копировать файлы в каталоги, для которых требуется разрешение администратора. однако вы можете использовать команду scp для копирования в каталоги, принадлежащие удаленному пользователю.</p><p>итак, чтобы скопировать в каталог, который требует привилегий root, вы должны сначала скопировать этот файл в каталог, принадлежащий удаленному пользователю, с помощью команды scp. далее необходимо войти в удаленную учетную запись с помощью ssh. после входа в систему вы можете переместить файл в каталог по вашему выбору с помощью команды sudo mv. вкратце, команды для использования следующие:</p><p>используя scp, скопируйте файл в каталог в учетной записи удаленного пользователя, например, в папку documents:</p><pre><code>scp /path/to/your/local/file remoteuser@some\_address:/home/remoteuser/documents </code></pre><p>затем войдите в учетную запись удаленного пользователя с помощью ssh, а затем переместите файл в ограниченный каталог с помощью sudo:</p><pre><code>ssh remoteuser@some\_address sudo mv /home/remoteuser/documents/file /var/www </code></pre>

<p>обратите внимание, что в имени вашего файла нет <code>:</code>. я обнаружил, что мне нужно <code>mv blah-07-08-17-02:69.txt no\_colons.txt</code>, а затем <code>scp no-colons.txt server:</code>, затем не забудьте <code>mv</code> вернуться на сервер. на всякий случай это было проблемой.</p>